学会自己处理问题

前言:我们在使用MySQL的过程,总会碰到这种那种问题,如果这些问题你从前没遇到过的话,这时肯定就会手足无措。下面给大家谈谈两点经验:
一、mysql无法启动(绝招:perror)
 [ERROR] /usr/local/mysql/libexec/mysqld: Can't create/write to file '/usr/local/mysql/test.pid' (Errcode: 13)
从上面的错误代码中可以看到,日志提醒的是,无法创建文件:/usr/local/mysql/test.pid,错误代码(Errcode)为:13.这时候,我们可以通过mysql提供的工具perror来查看错误代码13具体代表什么含义;
 test#/usr/local/mysql/bin/perror 13
Permission denied
拒绝访问!很明显,是没有创建文件的权限。这时给它分配一个相应的权限即可。
 test#chown -R mysql:mysql /usr/local/mysql

二、mysql无法启动(绝招:more XXX.err)
 Starting mysqld daemon with databases from /var/lib/mysql STOPPING server from pid file /var/lib/mysql/test.pid mysqld ended
上面属标准错误输出,谁都无法理解真正的含义。这时,我们要想到的就是日志文件。对!!错误日志文件XXX.err。
 test#more /usr/local/mysql/test.err
...... File './test-bin.000001' not found (Errcode: 13) [ERROR] Could not use yejr-bin for logging (error 13). Turning logging off for the whole duration of the MySQL To turn it on again: fix the cause, shutdown the MySQL server and restart it. [ERROR] Aborting [Note] /usr/libexec/mysqld: Shutdown complete ......
错误代码显示,跟上面的情况一样,属于权限问题。
不过这次是要创建binlog。这时候,我们需要先确定是否需要开启 binlog,如果系统的I/O负载不是很高,而且没有完善的备份机制情况下,建议还是开启binlog,至少作为一种应急备份机制。如果不需要开启,我们只需要在 my.cnf 中把类似以下2行注释掉:
 #log-bin = xxx
 #binlog-format = xxx
这时候就会禁用binlog,然后跟上面的例子一样,修改下目录属性,应该就可以了。

总结:在你不知道该怎么办的时候,第一件事,就是查看 xxx.err 文件,然后把该文件最新部分的内容提供给你要询问的人,以方便他们帮助你解决问题。

作者: kennychang05   发布时间: 2010-09-05