《Mysql必讀mysql默認字符編碼問題》要點:
本文介紹了Mysql必讀mysql默認字符編碼問題,希望對您有用。如果有疑問,可以聯系我們。
MYSQL實例在mysql中導入一個2m多的數據db.sql,由于.sql 文件不是自己寫的,在win下用mysql命令行客戶端導入時一直提示錯誤.
開始導入一直崩潰:mysql server has gone away
在my.ini中添加:max_allowed_packet = 10m? 順利解決.
MYSQL實例繼續導入,又提示:
error 1064 (42000): you have an error in your sql syntax; check the manual that corresponds to your mysql server version for the right syntax to use near '95鏋夎垂闈掓槬婕?',374,'757','2010-10-' at line 1
錯誤提示單引號附近有問題,查看文檔發現這地方的單引號已經用反斜杠轉義了,應該不會有問題,為了調試過去我索性把單引號刪除,測試還是不行,
error:incorrect string value:'xb1250xe9x83...' for column 'good_name' at row 1.
查看.sql文件的編碼格式是utf-8,沒有問題,我建表的時候指定字符格式是utf-8,
剛才因為在客戶端插入中文數據,執行了set names gbk;
馬上設置成utf-8 :set names utf8
重新導入:source? c:/db.sql
順利通過
MYSQL實例總結:
1,在導入或執行一個過大sql語句是,相應的max_allowed_packet參數應增大.
2,導入數據時,數據文件編碼要和數據表編碼、mysql客戶端編碼一致.
MYSQL實例相關鏈接:
mysql字符編碼設置問題 linux下mysql字符編碼問題的解決辦法MYSQL實例mysql默認字符編碼的設置
?
mysql的默認編碼是latin1,不支持中文,那么如何修改mysql的默認編碼呢,下面以utf-8為例來說明
需要注意的是,要修改的地方非常多,相應的修改辦法也很多.下面是一種最簡單最徹底的辦法:
一、windows
1、中止mysql服務
2、在mysql的安裝目錄下找到my.ini,如果沒有就把my-medium.ini復制為一個my.ini即可
3、打開my.ini以后,在[client]和[mysqld]下面均加上default-character-set=utf8,保存并關閉
4、啟動mysql服務
二、linux
1、中止mysql服務(bin/mysqladmin -u root shutdown)
2、在/etc/下找到my.cnf,如果沒有就把mysql的安裝目錄下的support-files目錄下的my-medium.cnf復制到/etc/下并改名為my.cnf即可
3、打開my.cnf以后,在[client]和[mysqld]下面均加上default-character-set=utf8,保存并關閉
4、啟動mysql服務(bin/mysqld_safe &)
修改后,mysql一切相關的默認編碼均為utf-8了,創建新表格的時候無需再次設置
注意,當前數據庫中已存在的數據仍保留現有的編碼方式,因此需要自行轉碼.
歡迎參與《Mysql必讀mysql默認字符編碼問題》討論,分享您的想法,維易PHP學院為您提供專業教程。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/7420.html