web-dev-qa-db-ja.com

MySQL 8リモートアクセス

私は通常、リモートアクセスを行うためにMySQLを正しくセットアップします。

そして現在、MySQL 8にこだわっています。

最初のことは、mysql.conf.d/mysqld.cnfにバインドアドレス行がないため、手動で追加しました(bind-address 0.0.0.0)そして、ユーザーにアクセスを許可しました「%」

接続すると、「認証に失敗しました」というメッセージが表示されました

しかし、localhost /コマンドラインではうまく機能します

5
sHaDeoNeR

作り方:

  1. bind_addressファイルからmy.iniパラメーターを削除またはコメント化します。

(ファイル名はOSによって異なります。Linuxでは、my.iniは実際にはディレクトリ/ etc/mysql /にあるmy.cnfです)

  1. サービスを再起動します。
  2. rootユーザーを作成します(はい、新しいユーザーローカルアクセスのみである 'root @ localhost'が存在するため):

    CREATE USER 'root'@'%' IDENTIFIED BY '123';

  3. 特権を付与します。

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

[〜#〜] dba [〜#〜]ユーザーの場合、WITH GRANT OPTIONを最後に追加します。


機能しないためGRANTで作成

MySQL 8GRANTでユーザーを作成できなくなったため、使用しようとするとIDENTIFIED BY '123'にエラーがあります最も一般的なエラーであるGRANTを使用します。

9
rbz