E.1. 调试MySQL服务器

如果你使用MySQL某些非常新的功能,你可以带--skip-new参数(这个选项禁止掉所有新的潜在不安全的功能)或带 --safe-mode参数(它禁止掉很多可能导致问题的优化设置)来运行mysqld 请参阅A.4.2节,“如果MySQL依旧崩溃,应该做什么”

如果 mysqld 不启动,你应该查证有没有干扰你的设置的my.cnf文件。你可以用mysqld --print-defaults...检查my.cnf参量,并用mysqld --no-defaults来启动去避免它们。

如果mysqld 启动耗尽CPU或内存资源,或者它“挂”了起来,你可以使用 mysqladmin processlist status去找出是否有人执行了一个占用很长时间的查询。如果你正面临着性能问题或新客户端不能连 之时的问题,在某些窗口中运行mysqladmin -i10 processlist status可能是一个好主意。

mysqladmin debug 命令把一些有关使用中的锁,使用的内存以及查询使用的信息转储到MySQL日志文件里。这将有助于解决一些问题。即使你没有为调试编译MySQL,这个命令也提供一些有用的信息!

如果问题是一些表变得越来越慢,你应该试着用PTIMIZE TABLE或myisamchk优化表。I请参阅第5章:数据库管理。你也可以用EXPLAIN检查慢 的查询。 

对那些于你的环境是独特的问题,你也应该查阅这个手册里OS规格的部分请参阅 2.12节,“操作系统系统的注意事项”

关注编程学问公众号