1. 程式人生 > 資料庫 >mysql關聯兩張表時的編碼問題及解決辦法

mysql關聯兩張表時的編碼問題及解決辦法

Mysql關聯兩張表時,產生錯誤提示Illegal mix of collations

1、先用工具把資料庫、兩張表的編碼方式改變

2、這步很重要,需要改變欄位的編碼方式。

ALTER TABLE `表名` CHANGE `dev_chancode` `欄位` VARCHAR(32) CHARACTER SET gbk NOT NULL;

總結:在建表時一定注意統一的編碼方式,後續搞來搞去超級麻煩。

如何解決MySQL表編碼轉換問題

  1. 將待匯出的資料表的表結構匯出(可以用Phpmyadmin、mysqldump等,很簡單就不說了),然後將匯出的create table語句的CHARSET=latin1改為CHARSET=utf8,在目標庫newdbname中執行該create table語句把表結構建好,接下來開始匯出-匯入資料。命令:
  2. ./mysqldump -d DB_Dig > /usr/local/tmp/tables.sql
  3. 命令列:進入mysql命令列下,mysql -hlocalhost -uroot -p*** dbname
  4. 執行SQL select * from tbname into outfile '/usr/local/tbname.sql';
  5. 將tbname.sql轉碼為utf-8格式,建議使用UltraEditor,可以直接使用該編輯器的'轉換->ASCII到UTF-8(Unicode編輯)',或者將檔案另存為UTF-8(無BOM)格式
  6. 在mysql命令列下執行語句 set character_set_database=utf8; 注:設定mysql的環境變數,這樣mysql在下一步讀取sql檔案時將以utf8的形式去解釋該檔案內容
  7. 在mysql命令列下執行語句 load data infile 'tbname.sql' into table newdbname.tbname;

以上就是本次介紹的全部知識點內容,感謝大家的學習和對我們的支援。