外部サーバーのmysqlにアクセスする

新サーバーに移行中にエラーが出た

Fatal error: Uncaught mysqli_sql_exception: Host 'xxxx.vs.sakura.ne.jp' is not allowed to connect to this MySQL server in /var/www/libs/xxx.php:606

外部のmysqlサーバーにアクセスできないようだ

現在のrootユーザーの許可されているホストを確認

SELECT Host, User FROM mysql.user WHERE User = 'root';

接続先のmysqlサーバーにアクセスの許可を与える

GRANT ALL PRIVILEGES ON *.* TO 'root'@'123.123.123.123'; 
FLUSH PRIVILEGES;

これだとおそらくmysqlデータベースのuserテーブルにはパスワードなしで登録されて、既存のパスワードを使用してmysqlサーバーに接続してパスワードエラーで接続できない

上記でなく多分こっちが正解↓

GRANT ALL PRIVILEGES ON *.* TO 'root'@'123.123.123.123' IDENTIFIED BY 'password'; 
FLUSH PRIVILEGES;
エラーが変わった
Uncaught Error: Syntax error, unrecognized expression: .

Fatal error: Uncaught mysqli_sql_exception: Access denied for user 'root'@'osxxxx.vs.sakura.ne.jp' (using password: YES) in /var/www/libs/xxxxx.php:606

パスワードもあってるはずなのに特定のサーバーからはログインできない。

mysqlデータベースのuserテーブルを確認して与えた権限が登録できているか確認

赤枠の部分にパスワードが設定されていない

同じパスワードなので上からカラムからコピーしてmysqlをリフレッシュ

FLUSH PRIVILEGES;

アクセスできるようになった

タイトルとURLをコピーしました