当前位置: 首页 > 图文教程 > 数据库 > MYSQL > Timeout error occurred trying to start MySQL Daemon

MYSQL
使用mysql的mysqldump实现自动备份
MySQL数据导出和导入工具:mysqldump
怎样从Windows命令行启动您的MySQL
细化解析实现MySQL查询结果的分页显示
强大的工具 MySQL客户端命令行应用技巧
MySQL 5.0.16中出现乱码问题的解决方法
phpMyBackupPro备份恢复Mysql数据库
如何才能关闭MySQL数据库中错误提示音
数据库竟然崩溃了!马上让它恢复正常!
怎么显示 MySQL 数据库里表的概要呢?
自动恢复MySQL数据库的日志文件全教程
实例解说MySQL数据库中文问题的解决方案
优化MySQL数据库性能的几招儿好办法
MySQL加密函数保护Web网站敏感数据
使用PHP小程序清除Mysql中恼人的死连接
Mysql中用utf8存储而用gbk输出的实现
浅谈怎么才能在MySQL中直接储存图片
用特殊的MySQL运算符获得更多数据比较功能
MySQL数据库中的重要资料需要怎样保护?
假如忘记MySQL root密码应当怎样找回

MYSQL 中的 Timeout error occurred trying to start MySQL Daemon


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-30   浏览: 152 ::
收藏到网摘: n/a

#/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命令. http://ruanchen.com
    而这个命令想要正确执行是需要能够登录mysql的.现在一些默认帐号已经删除,而且其它帐号已经设置了密码(默认没有设置密码).于是它没有办法连接到mysql. http://ruanchen.com
   于是我用了下面的办法解决.
   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  ]
 
  这样就可以了.