2010-01-27 6 views

답변

12
mysqldump --user=username --password=password --default-character-set=latin1 --skip-set-charset dbname > dump.sql 
sed -r 's/latin1/utf8/g' dump.sql > dump_utf.sql 
mysql --user=username --password=password --execute="DROP DATABASE dbname; CREATE DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;" 
mysql --user=username --password=password --default-character-set=utf8 dbname < dump_utf.sql 
+9

를 실행할 수 있습니다 그리고 희망 데이터베이스는 내용의 내부에 "라틴"포함하지 않는 쿼리를 많이 구축한다 귀하의 게시물 변환 웹 사이트가 갑자기 잘못된 데이터베이스 명령을 제공하는 경우 소송 –

+0

sed : uconv --from-code latin1 --to-code utf8 dump_utf.sql> dump_utf_fixed.sql – scribe

+0

SED 란 무엇입니까? – marcolopes

37

:

ALTER CHARACTER SET의 UTF8 부씩의 utf8_unicode_ci 표 탭 CONVERT; 전체 데이터베이스의

나는이 비슷한 이외의 다른 방법을 모르는 :

http://www.commandlinefu.com/commands/view/1575/convert-all-mysql-tables-and-fields-to-utf8

+18

커맨드 라인 액세스가없는 사람들은 데이터베이스에서'SHOW TABLES;'를 빠르게 실행하고 http://nimbletext.com/live의 NimbleText에 붙여 넣은 다음이 패턴을 사용하여 변경 스크립트를 생성 할 수 있습니다 :'ALTER TABLE \ '$ 0 \'캐릭터 세트로 변환 utf8 콜레이트 utf8_unicode_ci;' – jocull

+0

nimbletext에 대한 팁은 생명을 구하는 것 같아요. 투표하세요! – James

-1

이 (데이터베이스 이름

SELECT CONCAT과 my_database_name 교체 '표를 ALTER'TABLE_NAME ' CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci; ') FROM information_schema.TABLES WHERE TABLE_SCHEMA ='my_database_name ';

이 사용자가 근거가있을 수 밖에 ... 등의 문자 인코딩에 대한 블로그 게시물 등은

관련 문제