安裝mysql后,默認(rèn)的字符集是latin1。在linux下安裝mysql不像在windows上安裝那像,可以選擇字符集(即使當(dāng)時(shí)使用了默認(rèn)的字符集,安裝后也可以在安裝目錄下修改my.ini文件),但是在linux就不太一樣了。
在shell輸入mysql登陸后:
mysql>show variables like '%char%';
回車后顯示:-
+----------------------+---------------------
| Variable_name | Value
+-----------------------+---------------------
| character_set_client | latin1
| character_set_connection | latin1
| character_set_database | latin1
| character_set_filesystem | binary
| character_set_results | latin1
| character_set_server | latin1
| character_set_system | utf8
| character_sets_dir | /usr/share/mysql/charsets/
+---------------------+----------------------
這就是它默認(rèn)的設(shè)置。
接下來到/usr/share/mysql/目錄下,將my-medium.cnf文件(使用其它實(shí)例配置文件也行)拷貝到/etc目錄下:
pds:~# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
pds:~# vi /etc/my.cnf
分別在如下幾項(xiàng)中添加字符集:
[client]
default-character-set=gb2312
[mysqld_safe]
default-character-set=gb2312
[mysqld]
default-character-set=gb2312
#default-table-type=innodb
[mysql]
default-character-set=gb2312
再重啟mysql讓配置生效:
pds:~# service mysql restart
Shutting down MySQL done
Starting MySQL done
再次登陸mysql后,查看變量:
mysql>show variables like '%char%';
+----------------------+---------------------
| Variable_name | Value
+-----------------------+---------------------
| character_set_client | gb2312
| character_set_connection | gb2312
| character_set_database | gb2312
| character_set_filesystem | binary
| character_set_results | gb2312
| character_set_server | gb2312
| character_set_system | utf8
| character_sets_dir | /usr/share/mysql/charsets/
+---------------------+----------------------
如此顯示就完成了配置了,在表中插入一條含中文的記錄,就不再出現(xiàn)亂碼,但是原來插入的記錄很可能還是亂碼,因?yàn)樵瓉淼淖址c當(dāng)前字符集不一致。
最好將上面的gb2312改成utf8,因?yàn)閡tf8比gb2312更加通用些,某些情況下可能不能正常顯示
mysql的sock連接不正確的解決辦法:
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
本文出自:億恩科技【mszdt.com】
服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|