この記事では、主に、他の IP から MySQL データベースにアクセスできない問題の解決策をサンプル コードを通じて詳しく紹介します。これは、学習や仕事に必要なすべての人の参考と学習に役立ちます。以下に続きます。一緒に学びましょう。
前書き
先ほどのプロジェクトですが、プロジェクトの準備と検証の段階で問題が発見されました。状態を待っており、正しいユーザー名とパスワードを入力しましたが、アクセスできません。データベース接続にアクセスする方法がないようです。
mysql デプロイメント後のポートは通常 3306 です。 3306 ポートに ping と telnet を実行しようとしたところ、IP は ping できることがわかりましたが、3306 ポートは telnet で接続できず、次のようなエラーが表示されます:
ERROR 1130: Host *.*.*.* is not allowed to connect to MySQL
Look このエラーを見た後、オンラインで調べたところ、基本的に多くの解決策があることがわかりましたが、なぜそれについて具体的に書く必要があるのでしょうか?
答えは、インターネット上に mysql 5.6 に対する多くの解決策があります。5.7 では、このエラーに対する解決策は次のとおりです。
1. mysql に初めてログインした後、次のことを行う必要があります。 root パスワードを適時に変更します。ここでは 5.6 です。5.7 との違いが 1 つあります。つまり、5.6 のパスワード フィールドは、password ですが、バージョン 5.7 では、このフィールドはキャンセルされ、authentication_string フィールドに置き換えられます。
正しい変更方法は次のとおりです:
update user set authentication_string=password("xxxx") where user = "root"; flush privileges;
2. 変更後、use mysql コマンドを使用して mysql ライブラリに切り替えます。この mysql ライブラリは実際に mysql に存在し、データベース関連の情報を保存します。情報の図書館。
コマンド: use mysql;
use mysql;
3.找到users表,执行如下命令:
grant all privileges on *.* to 'root'@'%' identified by 'JLwg!2017' with grant option;
网上关于这块的修改方法很多,应该一共有4种,我用的是其中一种。
这个命令的意思是,修改root用户的访问权限,让所有ip都可以访问这个用户,这样一来的话,我们的应用就可以从外部ip访问这个mysql了,不然只有localhost可以访问,很不方便。
4.最后执行flush privileges;
rrreee
これをオンラインで変更する方法はたくさんあります。合計すると、そのうちの 1 つを使用します。 🎜🎜 このコマンドの意味は、すべての IP がこのユーザーにアクセスできるように、root ユーザーのアクセス許可を変更することです。それ以外の場合は、ローカルホストのみがアクセスできるようになります。とても便利です。 🎜🎜4. 最後にflushprivileges;
コマンドを実行して Mysql サービスを再起動すると、アプリケーションは正常にログインします。 🎜🎜🎜🎜概要🎜🎜🎜以上が他のIPからMySQLデータベースにアクセスできない問題の解決方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。