mysqldump 인코딩 강제

mysqldump 인코딩 강제

두 개의 mysql 서버가 있습니다. 동일한 mysql 클라이언트에서 보면 right_server는 프랑스어 문자를 올바르게 렌더링하지만wrong_server는 그렇지 않습니다. 인코딩은 동일합니다.

$ mysql -h right_server -NBe "'character_set_%' 등의 변수 표시"
$ mysql -h error_server-NBe "'character_set_%'와 같은 변수 표시"

동일한 결과를 제공합니다.

문자 세트 클라이언트 utf8
문자 세트 연결 utf8
문자 집합 데이터베이스 utf8
문자 세트 파일 시스템 바이너리
문자 세트 결과 utf8
문자 집합 서버 utf8
문자 세트 시스템 utf8

mysqldump를 사용하여 테이블 구조가 동일한지 확인합니다.

$ mysqldump -h right_server 데이터베이스 MY_TABLE grep MY_COL |
$ mysqldump -h 오류 서버 데이터베이스 MY_TABLE grep MY_COL |

그러나 주석 중 하나가 올바르게 렌더링되지 않습니다.

  `MY_COL` varchar(7) COLLATE utf8_bin COMMENT 'associé à',
  `MY_COL` varchar(7)은 utf8_bin 주석 'associ.'를 정렬합니다.

( mysqldump --default-character-set=UTF8 --no-data와 같은 결과)

문자 가 wrong_server올바르게 저장된 것 같습니다.

[오류 서버]$ mysql -e '생성된 테이블 db.MY_TABLE\G 표시'
  `MY_COL` varchar(7) COLLATE utf8_bin COMMENT 'associé à',

mysqldump 인코딩을 강제하는 방법은 무엇입니까?

참고: 서버 간의 유일한 차이점은 다음과 같습니다.

Character_sets_dir /.../mysql.../share/charsets/

서버 에 있고 SHOW VARIABLES LIKE 'character_set_%'이 디렉토리에 정의된 utf 파일이 없습니다.

관련 정보