Mac OS X下MySQL乱码

乱码问题表现:

  • 在“终端”中使用命令行对MySQL数据库中的数据进行操作时,可能无法插入非英文字符(例如,中文)
  • 使用应用程序(例如,php或java程序)对MySQL数据库中的数据进行操作时,插入的非英文字符,查询出来后,可能是乱码

使用“终端”程序连接到MySQL后,使用 show variables like ‘%character%’; 查看字符集的设置情况。
出现下面内容,其中,character_set_server的值为latin1,需要将其设置为utf8。

在/usr/local/mysql/目录下,有一个my.cnf文件,该文件是从模板文件得来的,这里的模板文件,就是/usr/local/mysql/support-files目录下的my-default.cnf文件。更多信息,可以参考http://dev.mysql.com/doc/refman/5.6/en/server-default-configuration-file.html。关于相关变量的信息,可以参考http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html

所做的修改,就是在my.cnf文件中进行的。

1、关闭mysql服务,可以在“系统偏好设置”->“MySQL”面板中进行,也可以使用以下命令进行开启、关闭、重启

Shell

1
2
3
sudo /usr/local/mysql/support-files/mysql.server start
sudo /usr/local/mysql/support-files/mysql.server stop
sudo /usr/local/mysql/support-files/mysql.server restart

2、修改my.cnf文件的读写权限,可以设置为777,只要当前用户可以对其进行写入就行。
在[mysqld]下面添加character-set-server = utf8
然后,保存,并将读写权限恢复到原来的状态(也就是755),这里之所以要恢复读写权限,是因为会出现警告:Warning: World-writable config file ‘/usr/local/mysql/my.cnf’ is ignored,该警告会导致所做的修改不会有效。

3、重新开启mysql服务

4、删除已经是乱码的数据,将数据重新插入。此时,再进行查询,出来的就不是乱码了。

j j j

macOS Sierra下mysql無法啟動

今天測試一個程式的時候突然發現mysql無法啟動。點了幾次都沒有反映,畫面提示:

第一時間打開google尋找答案,發現有人與我碰到同樣問題,特此紀錄一下。

首先排查目錄權限的問題,先查看一下mysql建立了哪些用戶和組。

# cat /etc/passwd | grep mysql
_mysql:*:74:74:MySQL Server:/var/empty:/usr/bin/false
# cat /etc/group | grep mysql
_mysql:*:74:

看來是用戶和組名字發生了變化,按照如下指令修改:

# sudo chown -R _mysql /usr/local/mysql/data

之後一切正常,mysql又可以順利啟動了。

j j j