首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

解決 MySQL 啟動報錯:Timeout error occurred trying to start MySQL Daemon

     編輯:MySQL 資料庫相關知識

現象描述

#/etc/init.d/mysqld restart
Stopping MySQL: [OK]
Timeout error occurred trying to start MySQL Daemon. [FAILED]

但實際上 MySQL 已啟動成功:netstat -ln 可見 3306 連接埠監聽,mysql -u root -p 也能正常連線。

根因分析

啟動腳本 /etc/init.d/mysqld 使用 mysqladmin ping 判斷服務是否就緒。預設腳本中:

ping="/usr/bin/mysqladmin -uUNKNOWN_MYSQL_USER ping"

因預設匿名帳號已刪除、其他帳號設有密碼,導致 mysqladmin ping 無法登入,腳本誤判為啟動超時。

解決方案

  1. 建立無密碼、無權限的 daemon 帳號:
    mysql -u root -p
    GRANT SELECT ON test.* TO 'daemon'@'localhost';
    REVOKE SELECT ON test.* FROM 'daemon'@'localhost';
  2. 編輯 /etc/init.d/mysqld,將 ping 變數修改為:
    ping="/usr/bin/mysqladmin -u daemon ping"
  3. 儲存並重啟服務:
    #/etc/init.d/mysqld restart
    即可正常顯示 [OK]。

此法解決啟動腳本誤判問題,不影響實際服務運行。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved