問題描述:新建數據庫並新建表插入數據,中文亂碼問題,即使將字符集經過命令行或者mysql客戶端改成utf-8仍是亂碼。html
問題緣由:此問題目前主要出如今Linux爲centos7安裝mysql上,主要是經過源碼編譯安裝mysql。經過rpm安裝或者yum安裝目前尚未發現像這樣的問題。ubuntu16.04經過apt-get install安裝mysql方式也沒有出現這個問題。mysql
好比:菜鳥教程的cmake安裝mysql方式就可能出現這個問題。linux
安裝連接爲:http://www.runoob.com/linux/mysql-install-setup.htmlsql
解決辦法以下所示:數據庫
(1).輸入 SHOW VARIABLES LIKE 'char%'; 查看MySQL編碼,有兩個不是utf8
(2).vim/vi /etc/mysql/mysql.conf.d/mysqld.cnf
添加以下內容(記得保存):
lc-messages-dir = /usr/share/mysql(已存在)
character-set-server=utf8(須要添加的)
skip-external-locking(已存在)
(3).vim/vi /etc/mysql/conf.d/mysql.cnf
添加以下內容(記得保存):
default-character-set=utf8ubuntu
經過配置文件的修改字符集方式,可永久保持數據庫編碼爲UTF-8,從而避免亂碼狀況
(4).重啓服務/etc/init.d/mysql restart
(5).mysql -uroot -proot 進入mysql 輸入 SHOW VARIABLES LIKE 'char%';
最後顯示結果以下:
+--------------------------+----------------------------+
| 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/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
小結,這個問題是我最初接觸MySQL的時候,那個時候我我的還在獨自開發一個博客系統,就出現過這種問題,今天恰好有一個朋友問我,沒想到他遇到的和我當初是一個問題,經過上述解決方案,已經妥善的解決了。因此,特別將其記錄下來,以備其餘IT友友們不時之需或者做爲解決相關問題的參考。
vim