*DBサーバー用のEC2の起動からMySQLのインストールの続き
##構成
*パブリックEC2
Linux 2
LANPサーバー
*プライベートEC2
MySQL8.0
##DBアクセスに使用するユーザーの状況を確認する
ローカル環境で作った場合、データベース接続に使用するユーザーがローカルホストからのみになっていることがあります
下記コマンドで表示内容のhostを確認します
mysql> select user, host from mysql.user;
ユーザーの権限変更ができるユーザーを作成します
mysql> create user '[ユーザー名]'@'%' identified by '[パスワード]';
特定IPから、もしくはどこからでもアクセス可能に変更します
(%はどこからでもアクセス)
mysql> grant all on *.* to '[変更したいユーザー名]'@'%';
MySQL|外部のホストから接続できるようにする方法 - わくわくBank
##ユーザーの認証方式を変更する
MySQL8.0以降の場合、認証形式の変更が必要です
作成したユーザーの認証方式を確認
mysql> SELECT user, host, plugin FROM mysql.user;
pluginが caching_sha2_password になっている場合、 mysql_native_password に変更
ALTER USER '[ユーザー名]'@'%' IDENTIFIED WITH mysql_native_password BY '[パスワード]';
##WEBサーバーからDBサーバーのMySQLにアクセスできることを確認する
mysql -h [DBサーバープライベートIP] -D [データベース名] -u [ユーザー名] -p
##参考
*【MySQL】PHPで接続できないとき SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client
*デフォルトの認証方式変更をする場合
phpからMySQL 8.0へPDOで接続時「SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client