Mysql8の設定でリモート接続が許可されるGRANTを使用してユーザーを作成することは許可されていません
Mysql 8 Settings Allow Remote Connections You Are Not Allowed Create User With Grant
1. mysqlにログインします: mysql -u root -p
2.パスワードを入力します。 パスワードを入力してください:xxxxx
------サーバーバージョン:8.0.15 MySQL CommunityServer-GPL
3.mysqlデータベースを入力します。 mysqlを使用する
4.リモートユーザーアクセスを許可するように設定します。
MySQL [mysql]> GRANT ALL ON *。* TO'root '@'% '
問題があります:エラー1410(42000):GRANTでユーザーを作成することは許可されていません
原因:現在のユーザーテーブルにルートがありません-%レコードルート-ローカルホストをルートに更新できます-%
MySQL [mysql]> update user set host = '%' where user = 'root'
問題がありました:エラー1062(23000):キー 'PRIMARY'のエントリ '%-root'が重複しています
その理由は、host + userがフェデレーションプライマリキーである必要があり、競合するためです。
5.解決策:解決策:
MySQL [mysql]> update user set host = '%' where user = 'root' and host = 'localhost'
6.ユーザーrootを再度承認します
MySQL [mysql]> GRANT ALL ON *。* TO'root '@'% '
MySQL [mysql]>フラッシュ権限
この時点で、navicat接続またはエラーを使用しています:クライアントはサーバーによって要求された認証プロトコルをサポートしていません
その理由は、mysql8のデフォルトの暗号化方法はcaching_sha2_passwordであり、mysql5の暗号化方法mysql_native_passwordが異なるためです。
7.解決策-ユーザーの暗号化方法を更新します。
MySQL [mysql]> ALTER USER'root '@'% 'IDENTIFIED WITH mysql_native_password BY'password'
変更の結果をクエリします。MySQL[mysql]>ユーザーからホスト、ユーザー、プラグインを選択します
その他:root-localhostをサポートする必要がある場合は、insertステートメントを使用できます
MySQL [mysql]> insert user(user、host、ssl_cipher、x509_issuer、x509_subject)values( 'root'、 'localhost'、 ''、 ''、 '')
もう一度見てください:(ssl_cipher、x509_issuer、x509_subjectこれらのフィールドにはデフォルト値がなく、設定がないとエラーが発生することに注意してください)