问题背景:在CentOS7版Linux系统中刚安装的mysql,使用时发现,存入的数据中的中文乱码。
这才发现MySQL刚安装完时忘了设置utf-8了。
进入mysql查看:
mysql>show variables like '%character%';
果然,character_set_database和character_set_results都是latin1,需要改成utf-8。
(character_set_filesystem那一项是binary(二进制文件,这是正常的文件编码格式),这个可不能是utf-8编码的)
然后进入修改/etc/my.cnf添加:
在 [mysqld] 标签下加上以下内容:
default-character-set = utf8
character_set_server = utf8
再重启mysql。发现报错:
ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid)
解决方法:
删除default-character-set = utf8 这一行,重启即可
再次查看MySQL编码:
mysql>show variables like '%character%';
就保留了[mysqld]下的
character_set_server = utf8
这下都是utf-8了。
参考:http://www.cnblogs.com/turingbrain/p/5552782.html
http://linushai.blog.51cto.com/4976486/983921
来自Stack Overflow的参考:
try using the unix lsof command to see which program has the lock
lsof | grep mysql
in fact, run lsof on the lock itself
lsof /var/lock/subsys/mysql
配置MySQL日志:
参考:http://blog.csdn.net/aa464971/article/details/52976230