環境
- VirtualBox 6.1
- MySQL 5.7.26
- Laravel
他の人が作成した環境をVirtualBoxのovaファイルを自分のVirtualBoxに取り込む。その中にMySQLが入っている。
エラー
エラー文
SQLSTATE[HY000] [1130] gateway is not allowed connect to this mysql server
対処
まずVirtualBoxで取り込んだ環境を実行し、MySQLへ接続
mysql -u root -p
MySQLのuserテーブルでどのユーザーにどんな権限があるか確認
SELECT user,host,plugin FROM mysql.user;
このコマンドでrootにはlocalhostが許されていることが確認できる。
しかしgatewayからの接続が許されていないので権限を与えてあげる。
GRANT ALL PRIVILEGES ON *.* TO root@gateway IDENTIFIED BY 'Cube001!' WITH GRANT OPTION;
もう一度MySQLのuserテーブルを確認してrootにgatewayが許可されているか確認する
SELECT user,host,plugin FROM mysql.user;
rootにgatewayが使用可能となったのでこれで、Laravelで表示できるようになりました(*’ω’*)
MEMO
pluginのmysql_native_passwordについて
MySQL5.7以降ではパスワードの認証方法が変更になり、基本的にはSHA256認証プラグインが採用されている。
SHA256が採用されている場合は、上記テーブルのplugin部分がsha256_passwordとなっている。
sha256_passwordとはSHA256ハッシュというパスワード保護の一種の方法で、今までのnative_passwordよりもハッシュの強度が増したものである。
これがnative_passwordでなく、sha256_passwordとなっているがために出ているエラーもあるようなので、その場合はnative_passwordに変更する必要があるそうです(‘◇’)ゞ