2013-08-06 58 views
7

在此先感謝您的幫助。錯誤2003(HY000):無法連接到'主機名'上的MySQL服務器(111)

我現在面臨與MySQL服務器的問題,這也是本專題的標題,使用命令:

mysql -u myuser -pmypass -h `hostname` db_name 

我得到的錯誤

ERROR 2003 (HY000): Can't connect to MySQL server on 'hostname' (111) 

所以我檢查了我。 cnf文件,我沒有「綁定地址」和「跳過網絡」的行,儘管我嘗試添加它們並重新啓動,但沒有任何改變。

除此之外,sql日誌中沒有錯誤,我們可以(通過HeidiSQL)遠程連接到服務器,知道用戶是myuser"@"%。 Mysql在端口3306上偵聽,所以它沒問題

此外,用@'localhost'創建的用戶可以在命令行(不帶-h選項)下正常工作。

什麼是更有趣的是,其他服務器的本地和遠程長得一模一樣的工作與第一命令

服務器用CentOS的6.2運行

因此,如果任何人有一個想法這件事情我會很高興聽到這個消息

PS:這是我第一次在這裏發帖,所以如果有格式問題,請原諒我

+0

'hostname'是從字面上傳遞的?如果是,請將其替換爲您的服務器(或localhost)的地址 –

+1

否它在「重音」之間傳遞(因此它是執行的unix命令) – ASettouf

回答

7

只需從

檢查您的my.cnf和變化
bind-address = 0.0.0.0 

bind-address = 127.0.0.1 

,如果你沒有這樣的參數,只是將它加入。

綁定到0.0.0.0讓你的mysql在每個IP配置的原因上都可用,你不能僅僅在服務器上的兩個或三個IP上綁定,配置可以是:localhost或一切。

然後檢查你的/ etc/hosts文件,並確保該行

127.0.0.1 localhost 

也包含你的服務器的主機名,作爲例子:我的主機名是 「DB01」,我的/ etc/hosts文件是

127.0.0.1 localhost db01 

請記住,在通過yum進行安裝過程之後(我不知道CentOS是否爲您自動執行此操作,我只知道Gentoo沒有),您必須執行mysql_install_db,然後爲root用戶配置密碼,請務必確保您設置了密碼:

'root'@'localhost' 
'root'@'hostname' 
'root'@'127.0.0.1' 
'root'@'%' 

(對於安全問題也一定要從mysql中刪除。用戶與用戶=「」)

那些希望進入這有助於

4

遲來的迴應,但我相信,錯誤消息意味着您正試圖將服務器連接到未在偵聽該接口上。

如果您更改配置到:

bind-address = 127.0.0.1

按照以上建議,你在做什麼是配置服務器拒絕除了那些從本地主機(本身)的所有連接。

bind-address = 0.0.0.0

在大多數情況下已經足夠,並且使MySQL的監聽系統,這使得它通過所有地址訪問該主機在訪問的所有接口。

0

開啓防火牆端口,並嘗試...

在終端

, 執行命令爲root

firewall-cmd --zone=public --add-port=3306/tcp --permanent 
firewall-cmd --reload 
-2

有我遇到了一個原因,你的MySQL服務器的IP地址衝突與本地網絡中的其他服務器。

相關問題