mysql數據庫字符集問題

     這段時間因爲要將以前物理服務器上的數據庫遷移到雲主機上運行。在遷移mysql數據庫使用了一段時間以後。一次進入數據庫進行相關的數據庫拉取發現數據庫直接報錯了。(如下爲報錯信息)mysql

 

ERROR 1267 (HY000): Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='sql

 

經過上述報錯應該是一個數據庫裏有兩個字符所致使的。(抱歉:本人不是DBA)在談論的時候不是太專業還請專業人士給予點評與指導。)數據庫

      看到了上述報錯,第一反應趕忙百度 google 但是悲劇的很,各類答案。不少答案只是說明了這個問題。而後給你一大堆的命令。可是關鍵的地方確就說說而已,沒有看到實際操做命令。哎,沒辦法了不懂數據庫看來很棘手啊。讓雲主機運營商的技術人員協助下吧。但是人家也麼有解決好。只能本身來操做了。vim

 

如下下是我本人根據查找了各路高手的文檔與說明本身整理的出來的步驟:bash

1.導出數據庫服務器

mysqldump -u root -proot db01 > /data/db01.sql

或者添加上ide

 --opt --default-character-set=latin1
 #例如:
 mysqldump -u root -proot db01 > /data/db01.sql --opt --default-character-set=latin1

 

 

2.修改數據庫google

vim db01.sql ci

%s/latin1/utf8/g

 

3.進入數據庫新建數據庫名文檔

create database db01 default character set utf8 collate utf8_general_ci;

(在新建的時候指定下數據庫的字符集。貌似網上有說新建數據庫時指定新的字符集就能夠了。可是我試過沒有奏效。)

 

4.導入數據庫

mysql -u root -p db01  --default-character-set=utf8 < db01.sql

(這裏網上也有說過在導入的時候指定下新的字符集就能夠了。可是個人仍是沒有奏效)

 

作到這裏就OK了。而後我進入數據庫發現沒有問題了。竟然解決了。

相關文章
相關標籤/搜索