ウェブサイト検索

エラー 1130 (HY000) を修正する方法: ホストはこの MySQL サーバーへの接続を許可されていません


この簡単な記事では、Linux システム上の MySQL/MariaDB データベース展開における「エラー 1130 (HY000): ホスト x.x.x.x はこの MySQL サーバーへの接続を許可されていません 」エラーを解決する方法を説明します。これは、ユーザーが遭遇する一般的なリモート データベース接続エラーの 1 つです。

テスト環境:

  • アプリケーション サーバー IP: 10.24.96.5
  • データベース サーバー IP: 10.24.96.6

図に示すように、mysql クライアントを使用して、アプリ サーバーの 1 つからデータベース サーバーへのデータベース接続をテスト中にエラーが発生しました。

mysql -u database_username -p -h 10.24.96.6

このエラーは、データベース ユーザーが接続しているホスト 10.24.96.5MySQL サーバーへの接続を許可されていないことを示しています。この場合、ユーザーがリモート接続できるようにデータベース サーバーにいくつかの変更を加える必要があります。

データベース サーバー上で、上記のユーザーが接続を許可されているホストを確認する必要があります。

mysql -u root -p

次の SQL コマンドを実行して、ユーザーのホストを確認します。

MariaDB [(none)]> SELECT host FROM mysql.user WHERE user = "database_username";

コマンドの出力によると、 ユーザーはローカルホストからデータベース サーバーに接続することのみが許可されています。したがって、次のようにユーザーのホストを更新する必要があります。

次のGRANT コマンドを実行して、リモート ユーザーがリモート ホストから MySQL にアクセスできるようにします。 「10.24.96.6」をリモート システムの IP アドレスに置き換え、「database_password」を必要なパスワード「database_username」に置き換えてください。 >」を使用するには:

MariaDB [(none)]> GRANT ALL ON database_name.* to 'database_username'@'10.24.96.5' IDENTIFIED BY 'database_password';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> SELECT host FROM mysql.user WHERE user = "database_username";

ユーザーにネットワーク上のすべてのホストからのリモート アクセスを許可するには、以下の構文を使用します。

MariaDB [(none)]> GRANT ALL ON database_name.* to 'database_username'@'10.24.96.%' IDENTIFIED BY 'database_password';

上記の変更を行った後、もう一度 MySQL データベース サーバーへのリモート接続を試みます。次のスクリーンショットに示すように、接続は成功するはずです。

mysql -u database_username -p -h 10.24.96.6

このソリューションが MySQL リモート接続エラーの解決に役立つことを願っています。ご質問がある場合は、以下のフィードバック フォームからお問い合わせください。