2

接続しようとしているリモートサーバーに正常にpingを実行できます。ただし、MySQLコマンドを実行する場合:

mysql -u monty -h website.com -p

次のエラーが表示されます。

ERROR 2003 (HY000): Can't connect to MySQL server on 'website.com' (111)

必要な権限を持つユーザーを作成する方法を示す、ここにある手順に従いました。

mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
->     WITH GRANT OPTION;
mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
->     WITH GRANT OPTION;

/etc/mysql/my.cnfの次の行もコメントアウトしました

# bind-address      = 127.0.0.1

それでも、リモートで接続できません。ここに欠けているものはありますか?どうもありがとうございました。

4

2 に答える 2

4

許可の問題ではありません。権限の問題である場合は、別のエラーが発生します。

接続の問題です。

skip-networking行の行がコメントアウトされているか、構成ファイルから削除されていることを確認してください。

回線が適切なポートに設定されていることを確認しportます(デフォルトは3306)。

それでも接続できない場合は、ファイアウォール/ISPの問題である可能性があります。

pingは、ICMPサーバーが稼働しているかどうかをテストするだけなので、実際には良いテストではありません。telnetを使用して特定のポートに接続する方が、より適切なテストになります。

> telnet website.com 3306

ファイルを配置できる場所はたくさんあるmy.cnfので、ファイルを検索して、別のファイルが有効になっていないことを確認します。

これをサーノルドの答えと組み合わせると、正しい方向に進むはずです。

于 2012-02-28T22:58:59.507 に答える
2

エラー111Connection refused

$ perror 111
111: Connection refused

これが発生する一般的な方法はいくつかあります。

  • サーバーシステム、クライアントシステム、または中間のルーターは、REJECTこれらのパケットを管理上管理するように構成されています。TCPパケットはICMPパケットとは異なる方法で処理されるため、TCPパケットをルーティングできることpingは、必ずしもランダムなTCPストリームをルーティングできることを意味するわけではありません。システムの管理者に、データのファイアウォールを確認ufwまたは確認するように依頼します。iptables
  • サーバーシステムは、 パケットを禁止するように構成されたAppArmorSELinuxTOMOYOSMACKなど の必須アクセス制御ツールを実行しています。これらのシステムは、エラーの報告方法が異なりますが、、、などを確認して出力します。/var/log/audit/audit.logdmesg(1)rejectdeniedAVC
  • 構成を1つだけ削除した可能性がありbind-addressます。構成ファイルに明示的(Googleキャッシュリンク。何らかの理由でbind-address=0.0.0.0連絡できません)を追加して、すべてのアドレスに強制的にバインドしてみてください。リッスンしているポートがある場合は、それをdev.mysql.com確認します。netstat -anp | grep -i mysql
于 2012-02-28T22:58:51.520 に答える