3


1

リモートMySQLサーバーに接続できません

ローカルネットワークの外部でホストされているMySQLデータベースに接続しようとしているサーバーがあります。 パブリックIPアドレスを使用して接続しようとしています。

コマンドラインで接続をテストすると、次のエラーが表示されます。

エラー2003(HY000): '[ip_address]'のMySQLサーバーに接続できません(146)

PDOでも同じエラーが発生します。 いずれにせよ、接続はローカルおよび同じネットワーク内で正常に機能します。

MySQLサーバーのバインドアドレスが変更されているため、リモート接続を受け入れます。 MySQLサーバーには、適切な特権が設定されたユーザーもいます。 しかし、いずれにせよ、そもそも接続を開始することさえできないように見えます。

MySQLがローカルネットワークの外部からのリクエストを受け入れるようにするために追加する必要があるmy.cnf値はありますか?

ありがとう。

4 Answer


4


確認事項

  1. MySQLはパブリックIPでリッスンしています(あなたがやったように聞こえます)

  2. MySQLは標準ポートでリッスンしています/同じポートに接続しています 聞いています。

  3. リモートマシンでファイアウォールが実行されていますか? (通常は ディストリビューションのパッケージ化標準)そのポートへの接続を許可するようにファイアウォールが設定されていますか?

  4. リモートマシンが別のネットワーク内にある場合、ネットワークはありますか 接続とエンドマシンの間で行われているアドレス変換(NAT)-その場合、MySQLポートが通過できるように構成されています。

  5. 何からの接続も許可するように設定された my.cnf`ファイル `localhost`以外の 127.0.0.1` IP-接続できないよりもアクセス拒否応答を受け取る可能性が高いですが。


2


その特定のホストからユーザーに特権を付与します。 または、任意のホストからアクセスするには、%を使用します(つまり、 ワイルドカード)ホストとして。


1


クライアントが接続できないように思えます。 このページには、問題を絞り込む方法に関するいくつかの提案があります。

サーバーのポート3306にTelnetで接続しようとするとどうなりますか? MySQLからプロンプトが表示されるはずです。


0


コマンドを使用して、すべてのユーザーに特権を付与します

すべての権限を_._に付与し、「root」@「localhost」に「root」で付与されたオプションを付与します。 _._のすべての特権を「root」@ '%'に付与します。フラッシュ特権;

「my.cnf」ファイルに移動します。 Ubuntuで使用する場合(sudo find / -type f -name "my.cnf")

「bind-address = 127.0.0.1」という行をコメントアウトします

ubuntuの場合は「sudo service mysql restart」を使用してmysqlを再起動します