2020年10月29日 星期四

MySQL 1366 Incorrect string value 錯誤解決方案

使用中文的情況下

資料庫的使用必然會遇到編碼問題,

這就是今天要教大家的主題:

MySQL 1366  Incorrect string value 錯誤解決方案

 MySQL 預設字集編碼為 latin1,

可在 MySQL 中使用 

status;

來查看目前的狀態



上面範例圖片就是基本的預設值狀態,
可以看到
characterset 都為 latin1

解決的方式很簡單,

以 Ubuntu 為範例,

MySQL 安裝完畢後,

前往安裝資料夾找到設定檔

/etc/mysql/mysql.conf.d/mysqld.cnf

新增

character_set_server = utf8

再重新啟動 MySQL 的服務即可。


若是已經存在的資料庫也沒關係,

進入 MySQL 的 console 中,

執行

ALTER DATABASE dbdata CHARACTER SET utf8

將資料庫轉為 utf8 編碼,

若裡面已經存有資料,

建議使用底下命令將其導出後,

mysqldump -uroot -p --skip-set-charset dbdata > dbdata.sql

並將資料轉為 utf8 編碼

sed -i 's/latin1/utf8/g' dbdata.sql > dbdata_utf8.sql

最後以新的 utf8 編碼導回

mysql -uroot -p --default-character-set=utf8 dbdata < dbdata_utf8.sql


至此,

中文對於資料庫,

就不會存在編碼相關的問題。

沒有留言: