mac和linux下mysql字符集设置问题

464 查看

为什么要设置字符集

  1. 设置字符集主要是解决乱码问题,由于中文和英文编码不同导致,中文出现乱码,所以一般都设置为utf8格式

  2. 不同的字符集占用的字节大小不同,选择合适的字符集可以提高数据库的性能,

mac下设置

  • 在/etc/my.cnf文件进行设置,如果没有此文件可以从/usr/local/mysql/support-files/拷贝,命令如下

cd /usr/local/mysql/support-files
sudo cp my.cnf /etc/my.cnf

查看文件的读写权限,如果为644(rw- r-- r--)则改为(664) (rw- rw- r--)
如果改为(666)(rw- rw- rw-)则修改以后配置文件不会生效

sudo chmod 664 /etc/my.cnf
  • my.cnf设置如下:

[client]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
[mysql]
default-character-set=utf8

查看设置是否成功

在命令行输入mysql,如果提示没有命令的话,在bash或者zsh的文件里修改,我用的是zsh,设置~/.zshrc,

export MYSQL="/usr/local/mysql/bin/"
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$MYSQL"

在命令行输入mysql,进入mysql命令行后,输入status;或者show variables like '%char%';

| 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.30-osx10.11-x86_64/share/charsets/

如果文章对你有帮助,请去我的博客留个言吧! 我的博客