mysql中怎么修改collation

方法:1、設置“my.cnf”文件,在mysqld下面添加“character_set_server=修改后的內容”和“collation_server=修改后的內容”;2、利用“systemctl restart mysqld”重啟即可。

mysql中怎么修改collation

本教程操作環境: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視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊7 分享