windows下mysql 5.7版本中修改編碼爲utf-8的方法

參考資料

https://blog.csdn.net/m0_37754003/article/details/82770252

https://blog.csdn.net/Leycaner/article/details/88189780

 

方法如下

首先通過 show variables like 'character_set_%';查看mysql字符集情

默認編碼爲 latin1

然後關閉數據庫

在mysql安裝目錄下找到my.ini文件

在其中添加

1

2

[client]

default-character-set=utf8

[mysqld]下添加

1

character-set-server=utf8

重啓mysql

就能將mysql數據庫默認編碼改爲utf-8

網上很多資源都是在[mysqld]下添加

1

default-character-set=utf8

如果這樣改會導致5.7版本mysql無法打開

所以要改爲

1

character-set-server=utf8

注意:改完後,要刪除數據庫中所有數據,才能使用。

注意

在MySQL安裝文件夾下(我的例子爲C:\Program Files\MySQL\MySQL Server 5.7\)編輯my.ini文件(如果沒有該文件,但是有一個my_default.ini的文件的話,可以複製default文件並重命名爲my.ini;如果default也沒有,可以直接創建該文件),在文件中修改/添加下面的內容:

[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
1
2
3
4
修改後重啓MySQL服務(計算機右鍵->管理->服務,找到MySQL服務點擊重啓動),使得修改生效。
坑來了:
修改了上述文件後,再次登錄MySQL輸入

SHOW VARIABLES LIKE "%char%";
1
發現其中的一部分變成了utf8,但是還有一部分沒有修改成功。
解決方法:
找到C:\ProgramData\MySQL\MySQL Server 5.7,這下面還有一個my.ini,同樣對這個文件做上述修改,保存並重啓MySQL服務。
再次查看,發現問題解決。
(如果還有部分沒有修改,在上述的文件中增加一條

[mysql]
default-character-set=utf8
1
2

對修改默認編碼前的數據庫,只修改配置文件無法影響到,將該庫刪掉重新建立,或者採用下面的指令:

alter database 你的數據庫名字 character set utf8; 
1
就可以修改當前數據庫的編碼格式了。

 

如果在linux下重啓mysql服務的時候出現Job failed to start,在window下重啓失敗,這是因爲你安裝了高版本的mysql(mysql5.5以上),在高版本對字符編碼方式修改的辦法中,在[mysqld]下的修改發生了變化,正確方式如下:

[mysqld]下添加的應該爲:

character-set-server=utf8

collation-server=utf8_general_ci

 

定位

1、數據庫字段、表、數據庫、mysql的編碼需要設置成utf8mb4

2、數據庫連接設置編碼

show variables like "%char%";

 

解決

1、設置數據庫

  1)修改字段字符集

ALTER TABLE table_name CHANGE column_name VARCHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

  2)設置表的字符集   

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

  3)設置數據庫的字符集

ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

  4)修改數據庫應用字符集

複製代碼

找到linux下的mysql位置
$ whereis mysql          找到位置
$  vi my.cnf  【這裏有my.ini,如果只有my-default.ini,則複製一份並命名爲my.ini】
 [增加或修改]
[client]
# 客戶端來源數據的默認字符集
default-character-set = utf8mb4
[mysqld]
# 服務端默認字符集
character-set-server=utf8mb4
# 連接層默認字符集
collation-server=utf8mb4_unicode_ci
[mysql]
# 數據庫默認字符集
default-character-set = utf8mb4

$ service mysqld restart 重啓服務即可

 

示例

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci

 

修改原有的編碼

USE `data_base_2019`;

/**
1、修改表的字符編碼
**/
ALTER TABLE `base_table` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

/**
2、修改庫的字符編碼
**/
ALTER DATABASE `data_base_2019` CHARACTER SET = utf8 COLLATE = utf8_general_ci;

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章