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;

以上就是本次介紹的全部知識點內容,感謝大家的學習和對神馬文庫的支持。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章