广

MYSQL

  • MYSQL
  • MSSQL
  • Redis
  • MongoDB
  • oracle数据库
  • 数据管理

    Timeout error occurred trying to start MySQL Daemon

    2018-04-25 21:47:09 次阅读 稿源:互联网
    零七网广告
    全网推广平台,软文发布

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

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七网广告
    零七网广告
    零七网广告
    零七网广告