方法:1、設置“my.cnf”文件,在mysqld下面添加“character_set_server=修改后的內容”和“collation_server=修改后的內容”;2、利用“systemctl restart mysqld”重啟即可。
本教程操作環境:windows10系統、mysql8.0.22版本、Dell G3電腦。
mysql中怎么修改collation
【問題報錯】
在數據庫插入數據時,varchar 類型的字段插入中文數據時報錯。
報錯原文:
Error 1366 (HY000): Incorrect String value: ‘xE8xA5xBFxE5xAEx89’ for column ‘address’
【原因分析】
通過 show full columns from user_bean;語句查看字段的collation屬性,發現字段的collation屬性值是 latin1_swedish_ci ,說明字段默認為英語。未對漢語進行設置,所以當輸入漢語時,mysql會報錯為“字符串的值不正確”。
【解決方法】
1、編輯mysql的配置文件 /etc/my.cnf,vi /etc/my.cnf
在 [mysqld] 下面加入兩行補充
character_set_server=utf8 collation_server=utf8_general_ci
2、重啟Mysql服務 systemctl restart mysqld
向數據庫插入含中文的數據,成功!
注意:上面步驟可以解決以后創建表時字段的collation屬性的問題,但前面已經創建的表字段的collation屬性值并不會發生變化。
如果要改變之前已經創建好的表,怎么辦?
方法1:對原來的表進行修改,可以通過類似語句
alter table user_bean change address address varchar(255) character set utf8 collate utf8_general_ci not NULL;
方法2:刪除原來的表,重新再建。
【命令總結】
show full columns from 表名 vi /etc/my.cnf character_set_server=utf8 collation_server=utf8_general_ci systemctl restart mysqld alter table 表名 change 要修改的字段 字段名 數據類型 character set utf8 collate utf8_general_ci 約束條件;
推薦學習:mysql視頻教程