经常使用mysql的程序猿(媛)深知,在windows环境搭建mysql环境还是比较简单的,安装完成后,就可以启动配置功能,进行配置,所以,mysql的密码和mysql的编码格式可以很方便的一次性解决。但是,mac用户,尤其是mysql新手,在安装mysql的过程中,便会遇到各种拦路虎。诸如:无法修改登录密码,无法永久修改字符串编码格式等等。
现在我们就一起来彻底解决字符串编码的问题。
mysql安装完成后,输入如下命令查看当前mysql的编码格式:
很显然character_set_database和character_set_server依然是latin1的字符集,也就是说mysql后续创建的表都是latin1字符集的,不是utf8,会造成一些麻烦。所以有必要修改my.cnf。下面正式开始我们的工作。
工作目的:修改mysql的默认编码方式:
1,关闭mysql服务
在对mysql的配置文件手动进行修改前,请确保关闭mysql服务。不然会遇到mysql的sock不能连接的问题
在mac下,打开“系统偏好设置”->选择“mysql”->“stop MySQL server”
如下图所示:
2,准备my.cnf文件
很多童鞋会说,我可以直接在mysql的命令行模式下,直接输入命令来修改字符编码啊,可是你是否发现,下次再使用的时候,字符编码还是变成latin1了呢?众所周知,mysql的全局配置文件在my.cnf文件里面,可是问题来了,网上说mac下把mysql目录里的support-files中的my-medium.cnf拷贝到/etc下并改名my.cnf并进行修改,可是你没发现mysql5.6或者5.7安装目录下已经没有这个文件了吗?但是有一个my-defalut.cnf的文件,和我们期待的my.cnf还是有点像的嘛,不妨打开看看,我们看到这样的文字内容:
看到红色框标注的文字,提示我们说,他建议我们可以到http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html去查看详细配置说明,我们不应该直接修改这个文件,这仅仅是在安装过程中生成的一个模板文件而已,如果你升级到新版本的mysql,这个文件会被替换掉。
大概就是说my-default.cnf是作为模版文件来生成my.cnf的,所以我们就直接复制一份,使用命令:
sudo cp my-default.cnf my.cnf 得到一份my.cnf文件。
3,修改my.cnf文件
在[client]部分加入:
default-character-set=utf8
在[mysqld]部分加入:
character-set-server=utf8
其中[client]和[mysqld]就是option groups,没有就自己编写,保存退出。可能在编辑过程中会遇到提示说该文件为只读文件,那么使用那个命令修改读写权限:
sudo chmod +w my.cnf
修改完成后,保持修改。
4,正确存放my.cnf文件
总结:经过本次摸索,得出的结论是,多查看官方文档才是硬道理!相信权威,拒绝盲目!