问题背景:在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



本文转载:CSDN博客