Ubuntu20 は、データベース内のユーザー 'root'@'%to データベース 'xxx' に対するアクセスが拒否される問題を解決します

最近、mysql パーミッションの割り当て中にエラーが発生しました。この仮想マシンのビルトイン データベース mysql バージョンは 8 であるため、mysql は、パーミッションを再割り当てするときに「ユーザー 'root'@'% のアクセスが拒否されました」と表示します。エラーの理由は、リロード権限が取り消され、失敗して権限を再割り当てし、他の同様の権限の問題もこの方法を参照できます。データベースの元の低いバージョンまたは Ubuntu18 未満のバージョンは、データベースのパーミッション エラーなどの多くの問題を引き起こしにくいです。

You can refer to the online tutorial ( https://blog.csdn.net/m0_54849873/article/details/126076063 ) データベースの正しい作成と 8.0 以上のデータベース権限の説明. このブログは非常に詳細で完全です.

    • データベース Mysql ユーザーの作成

mysql と入力し、アカウント パスワードを使用してログインし、メイン インターフェイスの MySQL コマンド ライン ページに入ります。

mysql -uroot -p

データベースの対話行を入力した後、管理者権限を持つユーザーを作成します。コードは次のとおりです。ここでは、IP ログインを制限しないユーザー ネットワークを作成することを意味します。このユーザーのパスワードは 123456 で、% は IP ログインが制限されていないことを意味します (特定の IP アドレスを使用する場合は、アドレスに置き換えることができます)。

create user 'network'@'%' identified by 'network';

ユーザーネットワークを作成した後、権限を更新する必要があります。そうしないと、エラーが発生する可能性があり、権限を更新するためのコードは比較的単純で明確です。

flush privileges;

2 ローカルで新しい接続を作成するときに、navicat を使用してログインし、ユーザーを接続できます

接続が正常に表示される場合、ページにはローカル接続が成功したことが示されます~~。この時点で開くと、データベースは information_schema と performance_schema の 2 つだけであることがわかります.下の図は、データベースの承認を実装し、作成に成功した図です.

3.ユーザーのエンパワーメント

上記の基本的な作業を完了した後、エンパワーメントを実現できます. エラーの主な理由は次のとおりです。

1. Mysql8 より上のバージョンでは、一度にすべての権限を付与する全体的なステートメントを使用して作成できないため、バージョン エラー レポートが表示されます。

つまり、ユーザー ネットワークには、データベース ネットワーク (これは私が以前に作成したデータベースです) 内のすべてのテーブルに対するすべての権限が与えられることを意味し、grant オプションを使用すると、ユーザーは他のユーザーに権限を付与できますが、ユーザーの権限を超えることはできません。この機能を実現するには、上記のチュートリアルを参照してください。

エンパワーメントのコア SQL コードは次のとおりです。

grant all privileges on network.* to 'network'@'%' with grant option;
2. 2 番目のタイプのエラーの主な理由は、データベースへの入力方法が正しくないことです. ルート管理者アカウントを使用して入力する必要があります. そうしないと、同様の理由で権限が不十分になります. たとえば、アクセス拒否の同様の理由が表示されます。

解決:

exit //退出数据库

終了後、root コマンドを使用して MySQL にログインします。

 mysql -uroot -p(密码)

入力後、上記の認可コマンドを再度使用して、このデータベースの認可管理を完了し、上記の問題を正常に解決することができます.これは、データベースを構築するときによく発生する問題の原因です.

おすすめ

転載: blog.csdn.net/qq_49491645/article/details/128862875