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


このクイック記事では、LinuxシステムでのMySQL/MariaDBデータベースのデプロイメントで「エラー1130(HY000):ホストx.x.x.xはこのMySQLサーバーに接続できません」エラーを解決する方法を学習します。これは、ユーザーが遭遇する一般的なリモートデータベース接続エラーの1つです。

  • Application Server IP: 10.24.96.5
  • Database Server IP: 10.24.96.6

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

# mysql -u database_username -p -h 10.24.96.6

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

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

# 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リモート接続エラーの解決に役立つことを願っています。ご不明な点がございましたら、以下のフィードバックフォームからお問い合わせください。