使用中文的情況下
資料庫的使用必然會遇到編碼問題,
這就是今天要教大家的主題:
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 的 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
至此,
中文對於資料庫,
就不會存在編碼相關的問題。
沒有留言:
張貼留言