Timeout error occurred trying to start MySQL
Timeout error occurred trying to start MySQL
#/etc/init.d/mysqldrestart
stoppingmysql[ok]
TimeouterroroccurredtryingtostartMySQLDaemon.[failure]
但是这个时候mysql实际上已经起动了,因为用netstat-ln命令去看3306端口已经起动.使用mysql-uroot-ppassword也能连接到数据库.
解决方法:
修改/etc/init.d/mysqld.
在mysql里创建dameon用户,然后再修改/etc/init.d/mysqld.
具体操作如下:
我们不妨先看看/etc/init.d/mysqld起动脚本是如何工作的,注意下面的一段
#Ifyou'veremovedanonymoususers,thislinemustbechangedto
#useauserthatisallowedtopingmysqld.
ping="/usr/bin/mysqladmin-uUNKNOWN_MYSQL_USERping"
#Spinforamaximumoftensecondswaitingfortheservertocomeup
if[$ret-eq0];then
forxin12345678910;do
if[-n"`$ping2>/dev/null`"];then
break;
else
sleep1;
fi
done
if!([-n"`$ping2>/dev/null`"]);then
echo"TimeouterroroccurredtryingtostartMySQL
Daemon."action$"Starting$prog:"/bin/false
else
action$"Starting$prog:"/bin/true
fi
else
action$"Starting$prog:"/bin/false
fi
[$ret-eq0]&&touch/var/lock/subsys/mysqld
return$ret
我们看到,脚本判断mysql是否起动,使用的是mysqladminping命令.http://webjx.com
而这个命令想要正确执行是需要能够登录mysql的.现在一些默认帐号已经删除,而且其它帐号已经设置了密码(默认没有设置密码).于是它没有办法连接到mysql.http://webjx.com
于是我用了下面的办法解决.
a)建立一个帐号,不设置密码,不给任何权限.
b)修改/etc/init.d/mysqld
下面我给出具体操作
#mysql-uroot-ppasswd
mysql>GRANTselectONtest.*TOdaemon@localhost
mysql>revokeselectontest.*fromdaemon@localhost
vi打开/etc/init.d/mysqld
把下面这行
ping="/usr/bin/mysqladmin-uUNKNOWN_MYSQL_USERping"
修改为
ping="/usr/bin/mysqladmin-udaemonping"
保存,退出.
重新起动mysql
#/etc/init.d/mysqldrestart
StoppingMySQL:[OK]
StartingMySQL:[OK]
这样就可以了.