MacOS下MySQL设置UTF8编码问题

时间:2023-01-05 09:29:11

 

1,检查默认安装的MySQL的字符集

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.5.23-osx10.6-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,关闭mysqld后台进程

系统偏好设置里面控制mysqld,避免了去找mysqld安装位置的麻烦。

MacOS下MySQL设置UTF8编码问题

点击 Stop MySQL Server

MacOS下MySQL设置UTF8编码问题

 

MacOS下MySQL设置UTF8编码问题

3=====================================

在MacOS中需要主动创建一个新的配置文件,并进行修改,网上大多数修改示例执行后MySQL根本没办法启动,后来终于找到一个好用的,记录下来备忘


1. > sudo cp /usr/local/mysql/suportfiles/my-small.cnf /etc/my.cnf
说明: 
/etc/my.cnf 如果此文件存在,会作为MySQL默认配置文件加载
但文件权限比较特殊,不用超级管理员操作不了,修改文件权限为777后MySQL服务启动失败,所以稳妥起见,别修改文件权限,直接用超级管理员操作就OK了

2. > sudo vi /etc/my.cnf
说明:
使用VI命令修改,但如果不是超级管理员也玩不转

3. 在[client]下面加上
default-character-set = utf8
说明:
网上还有使用 default_character_set = utf8 命令的,没试过,不知道这个好不好使
注意等号左右都有空格

4. 在[mysqld]下面加上
default-storage-engine = INNODB
character-set-server = utf8
collation-server = utf8_general_ci
说明:
之前坏菜就坏在这里了,按之前网上推荐的在[mysqld]下只要加上default_character_set=utf8,MySQL服务必起不来,郁闷,按上面的配置没问题

默认使用的是vim编辑器 按ESC键 跳到命令模式,然后::wq 保存文件并退出vi  即可 

===============================================

4,检查结果:

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.5.23-osx10.6-x86_64/share/charsets/ |
+--------------------------+--------------------------------------------------------+
8 rows in set (0.00 sec)

修改完毕#