1. 程式人生 > >mysql字符集亂碼

mysql字符集亂碼

mysql linux

很不多不註意數據庫的亂碼情況,導致字符出錯:

默認的是拉丁字符集:

技術分享圖片

在這個庫裏面創建的表也是拉丁字符集:

技術分享圖片

下面插入正常的數據:

技術分享圖片

顯示是正常的。

當插入中文的時候:必須要把客戶端設置為拉丁字符集。

技術分享圖片

另一種方法是在外面編輯xpg.sql;然後用system倒入進去

技術分享圖片

mysql不亂碼的5種方法及不亂嗎根源;

  1. set name

2.在sql文件裏面指定set name

3.在命令中使用--default-charcater-set=latin1

4.修改my.cnf

不亂碼的思想:客戶端,服務端,庫,表,程序統一

系統:系統文件,不同的系統是不一樣的。centos7的[root@ceshi ~]# vi /etc/locale.conf

客戶端:set names 就是修改客戶端字符集

服務端:修改my.cnf

庫表: create database test default character set utf8;

了解一下這2個命令:

show variables;

show global status; mysql的狀態

還有在不重啟mysql的情況下進行修改mysql參數。

修改是set global key_buffer_size=

查看是:show variables like "key_buffer%";

查看客戶端,服務端,系統的字符集;

技術分享圖片

分別是:客戶端字符集,連接字符集,數據庫字符集,返回字符集,服務端字符集,系統字符集;


執行set names到底做了什麽?

set name的結果就是修改客戶端,連接,以及返回結果字符集。

並只是臨時修改的。


mysql命令 --default-character-set=latin1和set names的結果是一樣的。


統一客戶端以及服務端的字符集

[client]

default-character-set=utf8

[mysqld]

default-character-set=utf8

這樣的修改需要重啟mysql。


mysql字符集亂碼