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庫下的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 ...