文章来介绍了在使用mysql服务器时经常会出现一些奇怪的无法启动的原因分析与解决这些问题的办法与过程,有需要了解的朋友可以参考一下.
因为要调试程序的关系,从后台修改了mysql设置,设置成:join_buffer_size=512k,结果保存后立即mysql无法连接,重启lu-restart,mysql-restart都无法连接.
操作成功,LuManager不能连接MySQL数据库,请用SSH登陆服务器检查MySQL数据库是否已启动,如果已经启动成功,请检查/usr/local/LuManager/Conf/config.php文件中的连接密码是否正确,如果没有启动成功,请用SSH登陆服务器,执行mysql-restart命令.
通过后台把/etc/my.cnf文件修改回原来的设置,也还是不行,config.php中的密码也是正确的,后来检查日志,发现:
- 120215 09:59:57 mysqld_safe mysqld from pid file /home/mysql_data/localhost.localdomain.pid ended
- 120215 10:00:01 mysqld_safe Starting mysqld daemon with databases from /home/mysql_data
- Unknown suffix 'B' used for variable 'query_cache_size' (value '0B')
- 120215 10:00:01 [ERROR] /usr/local/mysql/libexec/mysqld: Error while setting value '0B' to 'query_cache_size'
- 120215 10:00:01 [ERROR] Aborting
看来这个错误是query_cache_size在修改mysql设置的时候被修改成了0B,而系统要求要是0KB,但是,我修改的时候木有动query_cache_size参数啊?
网上找到的其它问题与解决办法:
如果MYSQL数据表使用不同的账户,还需要在MYSQL创建账户,或直接使用原来的MYSQL数据表覆盖,需确认之前的MSYQL数据表是未损坏的.
解决无法启动:遇到无法启动MYSQL时常见解决方法:
A、先使用命令C:Program filesmysqlbinmysqladmin-u root -p shutdown来关闭MYSQL
B、再在cmd命令行下,执行net start mysql启动mysql。
1067错误常见解决方法
故障现象:如果在停止MYSQL(net stop mysql)或启动MYSQL时,出现1067错误,错误信息“MySql 服务正在停止...系统出错(A system error has occurred.)...系统发生 1067 错误(System error 1067 has occurred.),进程意外终止(The process terminated unexpectedly.)”等.
常见解决方法
如果以前一直运行OK的,请先按照上面的“无法启动”解决方法执行一次看看,如果进行过Remove Instance操作,再次重建时后,一定要检查my.ini文件中的datadir是否已被还原了,如果该地址下数据库不存在,也将报告1067错误,只需要修改成真实的数据库目录地址,然后手动启动即可。
检查MYSQL目录权限
检查my.ini文件中[mysqld]字段下是否有basedir安装目录路径和datadir数据库路径,my.ini可能需要出现在两个地方,MYSQL的安装目录和Windows目录(假设是windows环境)下,都要检查一下.
有时候删除%windir%/my.ini文件然后再重新配置也可以解决,再次配置后检查一下Windir目录下是否有my.ini文件,有时把安装目录下最新的my.ini拷贝过去覆盖一下也能解决问题.
如果是Linux环境,试一下把mysql.server拷贝至/etc/rc.d/init.d/下,然后再运行chkconfig mysql.server,之后就可以在命令行中设置PATH、使用命令执行mysql启动.
非法关机造成的MYSQL无法启动问题
如果是因为非法关机等原因导致MYSQL无法启动或启动有问题的,最好使用重新安装的或确认是OK的MYSQL数据表及ibdata1、mysql.pid、ib_logfile0等文件进行覆盖,天缘试过遇到过多次这种情况,就是原来的MYSQL表有问题了,总是无法启动,但是更换成新表就可以。
重装MYSQL
发现MYSQL有问题时,最便捷的方法,是先把mysql卸载掉,然后重装重新配置,具体方法如下:
1、卸载MYSQL,清理掉安装目录和Windows目录下的my.ini文件.
2、检查任务管理器中是否还有mysql进程,如果有,可以把mysqld.exe杀掉,或者先杀掉再卸载也可以.
3、在cmd命令窗口,执行:sc delete mysql,该命令是清理注册服务命令.
3. 重装 mysql.
MySql无法正常启动,1053错误的另类解决方法:
在出现问题后,用mysqld-nt install mysqlservice的方式注册MySql服务,在正常情况下,机器重启后服务就会自动启动,但在某些(少数)机器上,重启后该服务无法正常启动,手动在服务里启动它,弹出提示:错误1053 服务未及时响应启动或控制请求。
此时,如果在命令行使用mysqld-nt remove mysqlservice的方式卸载此服务,它提示卸载成功,但事实上,系统中仍存在此服务,重启后此服务消失,可以利用mysqld-nt install mysqlservice重新注册服务,一切恢复正常. |