workbench 8.0 버전인데...

workbench 8.0 버전인데...

QA

workbench 8.0 버전인데...

답변 2

본문

1889385735_1666883860.8425.png

 

아래처럼 한글이 깨져서 나옵니다.  (위 스크린샷에서 utf8mb4로 된 부분을 전부 utf8mb3로 바꿔도 똑같습니다..)

1889385735_1666883937.3748.png

 

 

1889385735_1666883877.1048.png

 

my.ini은 위와 같이 설정하였는데 왜 utf8로 변경해도 한글이 깨져서 나올까요? 버전차이가 너무 나서 그런건가요? (php 버전은 5.5입니다. )

이 질문에 댓글 쓰기 :

답변 2

my.cnf 다시 설정해보세요


[client]
default-character-set=utf8
 
[mysql]
default-character-set=utf8
 
[mysqld]
collation-server = utf8_general_ci
character-set-server = utf8

 

그리고 mysqld 섹션에서


character-set-client-hand ...
init_connect ...

부분 다 삭제하신다음

 

웹서버 기본 응답 캐릭터셋을 utf-8 로 설정해보세요.

예를 들어 아파치의 경우엔


AddDefaultCharset utf-8

과 같은 지시자가 있습니다.

 

웹서버 기본 응답 캐릭터셋 적용이 힘들 경우 php 에서 header 로 설정할수 있습니다.


header('Content-Type: text/html; charset=utf-8');

안녕하세요. 기껏 답변 달아주셨는데, 금요일 저녁엔 회식으로 술을 많이 마셔서 밤 늦게 가서 다음 날 까지 너무 힘들었고 주말 동안 안 좋은 일이 있어 확인할 생각을 전혀 못했습니다 정말 죄송합니다.. 방금 말씀하신대로 완벽히 따라 했는데, 한글이 잘 나오긴하나 해당 오류가 이번엔 한글로 출력됩니다. 그리고 혹시나싶어 여기 답변 달아주신 설정대로 5.5.0 버전과 같은 경로에 다운 받은 php 7.4.30버전으로 실행했을 때도 잘 되는걸 확인했습니다. 답이 없는걸까요 ... ㅠㅠ 일단 워크벤치가 8.0 버전이긴 한데 이 버전에서 utf-8 캐릭터셋 설정시 [3719 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.] 라는 에러가 뜨는데 파파고로 돌려봤을 때 ['utf8'은 현재 UTF8MB3 문자 집합의 별칭이지만 이후 릴리스에서는 UTF8MB4의 별칭이 될 예정입니다. UTF8MB4를 사용하면 명확해질 수 있습니다.]라고 나오네요.

넵 맞습니다..

워크벤치 경고 문구  - 3719 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous
php 5.5.0 - 디비 정보가 틀리다는 한글 오류가 깨지면서 나타났다가 말씀해주신 캐릭터셋 바꾼 후  한글 오류 여전히 출력
php 7.4.0 - 첫 질문 했을 부터 디비 정보 틀리다는 오류 없이 제대로 동작 (즉, 디비 정보가 틀린건 아닌 것 같습니다. 왜냐면 디비 정보를 다르게 입력 했을 땐 php 7.4.0에서도 오류가 떴거든요.)

이렇습니다.

thumb-1889385735_1667230004.5794_730x243.png

 

아니면 저 함수가 php 5.5.0에서는 제대로 지원이 안되서 발생한 문제였다던가 하는 가능성은 없는걸까요?

https://www.php.net/manual/en/function.mysqli-connect
(PHP 5, PHP 7, PHP 8) 사용 가능 입니다.

그리고 코드가 다시 원복되었네요
https://sir.kr/qa/477707?sfl=mb_id%2C1&lstx=google_ds7w4xc0#c_477815
참조해서 오류메세지 나오게 수정하고 확인해보세요.

단순
... 정보에 오류가 있습니다.
라는 메세지로는 개발자 레벨에서 해결할수 있는 게 아무것도 없을것이고
있다 하더라도 쓸데없는 추측성 시간낭비만 하게 됩니다.

와우... 말씀해주신 통찰로 오류코드를 띄우고 다시 정보를 찾아보았는데 바로 답을 찾았습니다.
https://www.lesstif.com/php-and-laravel/php-mysql-8-caching_sha2_password-unknown-authentication-method-106856633.html

원인은 mysql8 버전부터 암호 인증 방식이 바뀌어서였습니다. 즉, cafe24는 더 낮은 버전에서 mysql을 구동하기에 5.5버전에서도 호환이 됐던 것이고, 지금 제 경우 mysql을 최신버전으로(8버전) 다운 받은 상태라 이런 상황이 생겼던 것이었습니다.

해결 방법은 mysql의 버전을 낮추던가 php 버전을 7.4 이상으로 올리던가 하면 되네요.

저에게 많은 조언을 해주신 분에게 적어도 어떤 결과가 됐는지 알려드리는게 도리같아 투머치한 글을 쓰게 됐네요.

진심으로 감사합니다!

와 대박입니다... 암호 인증 방식을 mysql8 이전의 방식으로 변경하는 방법으로 하였더니 php 5.5에서도 mysql 8 연동이 되었습니다! 정말 3주 동안 이 문제를 붙들고 있었는데 이걸 해결할 줄이야.. 정말 많은 도움 주셨습니다 감사합니다 ㅠㅠ 캐릭터셋 바꾸는 것도 결국 에러가 떠서 해야할 문제였구요!

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 1,543
© SIRSOFT
현재 페이지 제일 처음으로