參考原文:
我是在linux下用mysql5.6,通過程式向資料庫插入資料,debug時程式裡的中文是正常的,插入到資料庫後是亂碼;
以下是我的修改步驟:
1、命令:show variables like 『character%』;檢視資料庫編碼
顯示:| variable_name | value |
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
說明:我的問題就在character_set_server,需要將其修改為character_set_server=utf8
set character_set_client = utf8;
set character_set_results = utf8;
set character_set_connection = utf8;
set character_set_server=utf8;
這三條語句只是在本次連線時有效,關掉資料庫重新連線後character_set_server又變成latin1了
2,修改配置檔案
linux下找到 /etc/my.cnf
修改my.cnf的內容;
命令:vi my.cnf;
在[mysqld]欄位裡加入character-set-server=utf8,如下:
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
character-set-server=utf8
儲存命令: 按esc 後輸入":wq";
3,重啟mysql服務
命令:service mysql restart
(有的版本重啟命令:service mysqld restart,略有差別)
4,重新檢視字符集
mysql> show variables like 'character%';
| variable_name | value |
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
從新插入資料可以正常顯示了!
Mysql中文編碼問題解決
最近在進行hive的元資料中文注釋的同步,遇到了mysql中文編碼是亂碼問題,現在總結一下mysql編碼的基本原理。我們傳統意義上的說的編碼其實是指字符集,它包括兩個方面,一是儲存字元,二是對映關係,也就是真正的編碼,各種字符集的儲存字元都差不多,而編碼卻各不相同,是真正有威力的地方。mysql的字...
mysql編碼問題解決
首先需要在建立表的時候,將編碼規定。具體如下 create databasetest character set utf8 collate utf8 general ci engine innodb default charset utf8 補救措施 1.檢視預設編碼集 show variables...
MySQL中文亂碼問題解決
mysql 4.1及以後的版本開始支援多語言,這個所謂的多語言,就是在輸入輸出時mysql會替你做編碼轉換。而這個轉換規則就是由客戶端編碼和伺服器端編碼來決定的。編碼轉換的規則就是 在輸入資料時將編碼由 客戶端編碼 轉換為 伺服器端編碼 輸出時將資料由 伺服器端編碼 轉換為 客戶端編碼 mysql ...