PHP程序员站--PHP编程开发平台
 当前位置:主页 >> 数据库 >> MySQL >> 

Timeout error occurred trying to start MySQL Daemon错误解决办法

Timeout error occurred trying to start MySQL Daemon错误解决办法

来源:PHP程序员站  作者:  发布时间:2011-06-03
启动mysql数据库时出现Timeout error occurred trying to start MySQL Daemon. 错误,如下: #/etc/init.d/mysqld restart stopping mysql [ok] Timeout error occurred trying to start MySQL Daemon. [failure] 但是这个时候mysql实际上已经起动了,因为用netstat -ln命

启动mysql数据库时出现Timeout error occurred trying to start MySQL Daemon. 错误,如下:

#/etc/init.d/mysqld restart
stopping mysql     [ok]
Timeout error occurred trying to start MySQL Daemon.  [failure] 
但是这个时候mysql实际上已经起动了,因为用netstat -ln命令去看3306端口已经起动.使用mysql -u root -p password也能连接到数据库.

解决方法:
修改/etc/init.d/mysqld.
在mysql里创建dameon用户,然后再修改/etc/init.d/mysqld.
具体操作如下:
我们不妨先看看/etc/init.d/mysqld起动脚本是如何工作的,注意下面的一段
# If you've removed anonymous users, this line must be changed to
# use a user that is allowed to ping mysqld.
ping="/usr/bin/mysqladmin -uUNKNOWN_MYSQL_USER ping"
# Spin for a maximum of ten seconds waiting for the server to come up
if [ $ret -eq 0 ]; then
    for x in 1 2 3 4 5 6 7 8 9 10; do
    if [ -n "`$ping 2> /dev/null`" ]; then
            break;
    else
            sleep 1;
    fi
    done
    if !([ -n "`$ping 2> /dev/null`" ]); then
            echo "Timeout error occurred trying to start MySQL


Daemon."                    action $"Starting $prog: " /bin/false
    else
            action $"Starting $prog: " /bin/true
    fi
else
    action $"Starting $prog: " /bin/false
fi
[ $ret -eq 0 ] && touch /var/lock/subsys/mysqld
return $ret 

我们看到,脚本判断mysql是否起动,使用的是mysqladmin ping命令.
而这个命令想要正确执行是需要能够登录mysql的.现在一些默认帐号已经删除,而且其它帐号已经设置了密码(默认没有设置密码).于是它没有办法连接到mysql.
于是我用了下面的办法解决.
a)建立一个帐号,不设置密码,不给任何权限.
b)修改/etc/init.d/mysqld
下面我给出具体操作
#mysql -u root -p passwd
mysql>GRANT select ON test.* TO daemon@localhost
mysql>revoke select on test.* from daemon@localhost 
vi打开/etc/init.d/mysqld
把下面这行
ping="/usr/bin/mysqladmin -uUNKNOWN_MYSQL_USER ping" 

修改为
ping="/usr/bin/mysqladmin -udaemon ping" 

保存,退出.
重新起动mysql
#/etc/init.d/mysqld restart
Stopping MySQL:                                            [  OK  ]
Starting MySQL:                                            [  OK  ]

这样就可以了.


延伸阅读:
MYSQL错误:Can’t open file: ‘×××.MYI’
Mysql错误:Out of range value adjusted for column '字段' at row 1解决方法
Query was empty是什么错误
Tags: Timeout   mysql错误  
最新文章
推荐阅读
月点击排行榜
PHP程序员站 Copyright © 2007-2010,PHPERZ.COM All Rights Reserved 粤ICP备07503606号