1、首先檢查默認安裝的字符集
-
mysql> show variables like '%char%';
-
+--------------------------+--------------------------------------------------------+
-
| Variable_name | Value |
-
+--------------------------+--------------------------------------------------------+
-
| character_set_client | utf8 |
-
| character_set_connection | utf8 |
-
| character_set_database | latin1 |
-
| character_set_filesystem | binary |
-
| character_set_results | utf8 |
-
| character_set_server | latin1 |
-
| character_set_system | utf8 |
-
| character_sets_dir | /usr/local/mysql-5.6.23-osx10.8-x86_64/share/charsets/ |
-
+--------------------------+--------------------------------------------------------+
-
8 rows in set (0.00 sec)
character_set_database和character_set_server依然是latin1的字符集,也就是說mysql后續創建的表都是latin1字符集的,不是utf8,會造成一些麻煩。所以有必要修改my.cnf,在修改my.cnf之前一定要關閉mysql進程,不然會遇到mysql的sock不能連接的問題。
2、查看是否有my.cnf文件在/etc/目錄下
ls -al /etc/
檢查了一下,發現本機沒有my.cnf,查看了很多資料,他們說可以去/usr/local/mysql的安裝目錄下找到support-files,復制下面格式類似my-**.cnf的文件到/etc/目錄下即可。命令如下:
cp /usr/local/mysql/support-files/my-default.cnf /etc/
3、修改/etc/my-default.cnf文件名為my.cnf,並修改里面的配置
cat /etc/my.cnf
查看配置文件的內容
ls -l /etc/my.cnf
查看文件的讀寫權限,如果為644(rw- r-- r--)則改為(664) (rw- rw- r--)
如果改為(666)(rw- rw- rw-)則修改以后配置文件不會生效。下面詳細講解為什么不會生效。
sudo chmod 664 /etc/my.cnf
輸入密碼即可。
4、修改配置文件內容
vi /etc/my.cnf
在文件最上面加上
-
[client]
-
default-character-set=utf8
在[mysqld]下增加
character-set-server=utf8
鍵入:wq!保存並退出 重新啟動mysql
5、重新查看編碼集
-
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/local/mysql-5.6.23-osx10.8-x86_64/share/charsets/ |
-
+--------------------------+--------------------------------------------------------+
-
8 rows in set (0.00 sec)