>  기사  >  데이터 베이스  >  phpmyadmin으로 내보낸 sql 파일이 깨졌을 경우 어떻게 해야 하나요?

phpmyadmin으로 내보낸 sql 파일이 깨졌을 경우 어떻게 해야 하나요?

藏色散人
藏色散人원래의
2020-04-01 09:24:562590검색

phpmyadmin으로 내보낸 sql 파일이 깨졌을 경우 어떻게 해야 하나요?

phpmyadmin으로 내보낸 sql 파일이 깨졌을 경우 어떻게 해야 하나요?

phpMyAdmin 버전은 2.9.1.1

phpMyAdmin을 사용하여 데이터베이스를 내보낸 후 sqlyog를 사용하여 로컬로 복원하면 다음 오류가 나타납니다.

Error occured at:2009-03-03 10:09:43
Line no.:11154
Error Code: 1062 - Duplicate entry '??????' for key 2

sql 파일을 열고 살펴보세요. . 회원 테이블 아래에서 회원 사용자 이름은 모두 ???, ????와 유사하게 왜곡되어 있습니다. 이는 현재 많은 프로그램이 중국어 사용자 이름을 지원하고 사용자 이름이 고유하기 때문입니다. 중국어 사용자 이름이 왜곡되면 동일한 사용자 이름이 많이 생기기 때문입니다. , 그리고 이러한 왜곡된 데이터를 가져올 때 이미 ??????와 같은 사용자 이름이 있으므로 아래에 두 번째 이름이 나타나면 오류가 보고됩니다

시스템 제어가 있는 경우 다음을 사용할 수 있습니다.

mysqldump -uroot -p --default-character-set=utf8 --set-charset --skip-opt dbname > newdbname.sql

복원할 때는 정상입니다. 그러나 이제는 phpMyAdmin을 통해서만 내보낼 수 있습니다. "中文-중국어 간체-gb2312"이면 데이터가 내보내집니다. sql 파일은 gb2312이고 일부 테이블에는 한자가 포함되어 있으며 phpMyAdmin의 언어가 "中文-중국어 간체(즉, utf8)인 경우 한자가 깨집니다. )", 내보낸 SQL 파일의 문자 집합은 utf8입니다(형식을 보려면 Notepad++를 사용하고, BOM 형식 인코딩 없이 표시는 UTF-8입니다). 테이블의 중국어는 정상적으로 표시될 수 있습니다

그래서, 내보낸 파일의 중국어가 깨져 있는 경우, 언어 드롭다운 메뉴에서 중국어-간체를 선택한 후 내보내기를 선택하면 다운로드한 sql 파일의 중국어가 정상적으로 표시됩니다.

복원하려면 다음 명령을 사용하세요

mysql -uroot -p --default-character-set=utf8 newdbname < newdbname.sql

원래 phpMyAdmin의 기본 언어를 "中文-chineseimplicity"로 변경하고 싶었지만 라이브러리 디렉토리의 config.inc.php 및 config.default.php를 no로 수정해 보았습니다. 문제가 되지 않습니다. 결국 사람들은 데이터베이스에 대해 다른 인코딩을 선택합니다. 어떤 사람들은 항상 언어를 다시 선택해야 하며 기본값은 "中文-chineseimplicity-gb2312"입니다!

내 생각에 또 다른 해결책은 내보낸 파일 인코딩이 gb2312이므로 gb2312를 utf8로 변환하는 것을 고려해 볼 수 있습니다. 이 방법은 테스트 중입니다.

위 내용은 phpmyadmin으로 내보낸 sql 파일이 깨졌을 경우 어떻게 해야 하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.