1. 程式人生 > 資料庫 >mysql 無法聯接常見故障及原因分析

mysql 無法聯接常見故障及原因分析

=====================================================================================================
故障現象 : 無法連線 mysql
錯誤資訊 :ERROR 2003 (HY000): Can't connect to MySQL server on 'hostxxxxx' (10061)
原因 : mysqld資料庫服務沒有啟動。
檢查 :在windows 的工作管理員,或者 unix/linux 下 ps -aux | grep mysql 看一下。確認服務已經啟動。
處理 :啟動mysqld 服務

=====================================================================================================

==========================================================================
故障現象 : 無法連線 mysql
錯誤資訊 :ERROR 1130: Host xx.xx.xx.xx is not allowed to connect to this MySQL server
原因 : mysql伺服器沒有賦予此客戶端遠端連線的許可權。

檢查 :在mysql伺服器本地查詢mysql庫裡user表對應的host是否包含客戶端機器的IP(%為不限制IP允許遠端連線)。
處理 :修改mysql庫下的user表:update user set host = '%' where user ='XXX';flush privileges;
====================================================================================

你的使用者沒有使用 root 賬戶,或者你的root賬戶沒有授予登入許可權,需要使用
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

授權

=====================================================================================================
故障現象 : 無法連線 mysql
錯誤資訊 :ERROR 2003 (HY000): Can't connect to MySQL server on 'hostxxxxx' (10061)
原因 : mysqld 客戶端與服務端埠不一致。
檢查 :在my.ini 設定下服務埠 這種情況特別是客戶都與遠端伺服器埠不一致 很容易出現的問題
處理 :啟動mysqld 服務
=====================================================================================================

故障現象 : 無法連線 mysql

===================================================================================
錯誤資訊 :ERROR 2003 (HY000): Can't connect to MySQL server on 'hostxxxxx' (10061)
原因 : mysqld資料庫服務沒有啟動。
檢查 :在windows 的工作管理員,或者 unix/linux 下 ps -aux | grep mysql 看一下。確認服務已經啟動。
處理 :啟動mysqld 服務
===================================================================================
錯誤資訊 :ERROR 1130: Host xx.xx.xx.xx is not allowed to connect to this MySQL server
原因 : mysql伺服器沒有賦予此客戶端遠端連線的許可權。
檢查 :在mysql伺服器本地查詢mysql庫裡user表對應的host是否包含客戶端機器的IP(%為不限制IP允許遠端連線)。
處理 :修改mysql庫下的user表:update user set host = '%' where user ='XXX';flush privileges;
===================================================================================
錯誤資訊 :ERROR 1045 (28000): Access denied for user 'usera'@'localhost' (using password:YES)
原因 : 使用者賬號並未建立
檢查 :以管理員ROOT登入後,show grants for 'usera'@'localhost'; 或者 select user from mysql.user; 確認使用者賬號是否存在。
處理 :建立使用者賬號。
===================================================================================
錯誤資訊 :ERROR 2003 (HY000): Can't connect to MySQL server on 'hostxxxxx' (10061)
原因 : mysqld 客戶端與服務端埠不一致。
檢查 :在my.ini 設定下服務埠 這種情況特別是客戶都與遠端伺服器埠不一致 很容易出現的問題
處理 :啟動mysqld 服務
===================================================================================
錯誤資訊 :ERROR 2002 (HY000): Can't connect to local MySQL server server through socket '/var/lib/mysql/mysql.sock'(111)

原因 : mysqld的mysql.sock沒在相應的位置。

處理 :

1.先檢視/etc/rc.d/init.d/mysql status 看看是否啟動

2.改許可權 chown -R mysql:msyql /var/lib/mysql

3.修改/etc/my.cnf (注意:先停資料庫)

    [mysqld]
    datadir=/usr/local/mysql/data
    socket=/var/lib/mysql/mysql.sock
    [mysql.server]
    user=mysql
    basedir=/usr/local/mysql
    [client]
    socker=/var/lib/mysql/mysql.sock

4.啟動資料庫
===================================================================================

===================================================================================

常用檢查步驟。

1. PING hostname 或 PING 189.xx.xx.xx 確認伺服器IP層通訊沒有問題。如果PING通則繼續(2),PING不通則找網路方面專家協助。

2. TELNET hostname 3306 確認伺服器TCP層通訊沒有問題。(你的埠號可能不是3306),如通則繼續,如不通,請檢查mysqld 是否已經在執行,防火牆遮蔽了埠。

3. 檢查使用者許可權,show grants ...