2009-09-14 23 views
111

LinuxのIPアドレスに192.168.1.100のmysqlサーバをインストールしましたが、このIPに接続しようとすると常にエラー(111)になります。 localhostを使用し、127.0.0.1はOKです。別のマシンからMySQLサーバに接続できませんエラー111

 
[email protected]# ifconfig | grep "inet addr" 
      inet addr:127.0.0.1 Mask:255.0.0.0 
      inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0 

[email protected]# mysql -ubeer -pbeer -h192.168.1.100 
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.100' (111) 

[email protected]# mysql -ubeer -pbeer -hlocalhost 
Welcome to the MySQL monitor. Commands end with ; or \g. 
Your MySQL connection id is 160 
Server version: 5.1.31-1ubuntu2 (Ubuntu) 

Type 'help;' or '\h' for help. Type '\c' to clear the buffer. 

mysql> 

[email protected]# mysql -ubeer -pbeer -h127.0.0.1 
Welcome to the MySQL monitor. Commands end with ; or \g. 
Your MySQL connection id is 161 
Server version: 5.1.31-1ubuntu2 (Ubuntu) 

Type 'help;' or '\h' for help. Type '\c' to clear the buffer. 

mysql> 

Connectには、それはまた、エラー111

 
[email protected]# mysql -ubeer -pbeer -h192.168.1.100 
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.100' (111) 

どのようにこの場合の用途にはlocalhost/127.0.0.1と192.168.1.100間の差。 他のマシンからこのデータベースに接続する方法がわかりません。

お願いします。 ありがとうございます。

答えて

213

これはおそらく、MySQLサーバーがlocalhostインターフェイスだけをリッスンしていることを意味します。あなたはこのような行がある場合

:あなたのmy.cnf configuration file

skip-networking 
bind-address = 127.0.0.1 

を、あなたは彼らが(行の先頭に#を追加)コメント、およびMySQLを再起動する必要があります。

​​

もちろん、これを行うには、サーバーの管理者である必要があります。

+6

明らかに、彼は 'skip-networking'行を持っていません;-) –

+6

mysql my.cnfの場所を知る方法:http://stackoverflow.com/questions/2482234/how-to-know-mysql-my- cnf-location –

+0

しかし、mysqlワークベンチから接続できたらどうなりますか?私は同じ問題を抱えています。 –

32

111の意味接続が拒否されましたこれはつまり、mysqldがlocalhostのインターフェイスだけをリッスンすることを意味します。

変更するには、my.cnfファイルのmysqldセクションのbind-addressの値を見てください。

+0

ポート番号が有効かどうかを確認することも重要です。不一致の ':3306'と':3307'は111エラーにもなります。 – NXT

+0

@NXT、私はmysqlが異なるインターフェース上の異なるポートでリッスンできるかどうか分かりませんが、たとえ可能であっても、それは非常に起こりそうなシナリオです。それから、ファイアウォールルールなどがあるかもしれません。それを達成する方法はたくさんありますが、可能性は異なります。 –

+0

必ずしもそうであるとは限りません。私の 'my.cnf'ファイルには' bind-address'や 'skip-networking'行はありませんが、同じエラーが出ます。ファイアウォールもインストールされません。アイデアから逃れる。 – Deleet

7

上記の回答がすべて解決されなかった場合は、 のユーザー権限を確認する必要があります。

あなたは、あなたは、この追加する必要があり をMySQLへrootとしてログイン可能性がある場合:mysql -ubeer -pbeer -h192.168.1.100を使用して再度接続してみてくださいそして、

CREATE USER 'root'@'192.168.1.100' IDENTIFIED BY '***'; 
GRANT ALL PRIVILEGES ON * . * TO 'root'@'192.168.1.100' IDENTIFIED BY '***' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ; 

を。それは動作するはずです。

+14

私はユーザー特権に関連するエラーがエラー111を与えるとは思わない。 – ufk

+1

それは実際に働いて、私も111エラーを得ていた。 – Borjante

+0

は、127.0.0.1行をコメントアウトすることで、ネットワーク全体にmysqlを開くよりも優れた解決策です。それは最高のソリューションでなければなりません。 – nyxee

6

cPanel/WHMを実行している場合は、IPがファイアウォール内でホワイトリストに登録されていることを確認してください。そのIPを、接続しようとしているcPanelアカウントのリモートSQL IPリストに追加する必要があります。

+0

ファイアウォールでエラーが発生していないかどうかを確認するには、エラーが返されるまでにかなりの時間がかかります。 MySQLが問題を引き起こしている場合、応答はかなり瞬間的でなければなりません。 –

関連する問題