Halcyon Days

IT × 移住 × ファイナンス

MENU

【Laravel】SQLSTATE[HY000] [1130] Host '' is not allowed to connect to this MySQL server にハマった話

sail artisan migrate で初回マイグレーションを実行しようとしたときにタイトルのエラーが発生した。

特に何かしらをいじったわけでもなく、ただLaravelプロジェクトを作成して、sailをインストールしただけだった。

当時の環境

  • Laravel11
    • Laravel sail

解決のためにやったこと

一度、MySQLコンテナを初期化してから再度sailを立ち上げてマイグレーションを行った。

zenn.dev

上記の記事に書いてあるコマンド

$ docker-compose down --volumes

を叩いてから、再度下記コマンドでsailを立ち上げた。

$ sail up -d

この後、マイグレーションを実行すると

$ sail artisan migrate

   INFO  Preparing database.  

  Creating migration table ............................................................................................................ 87.88ms DONE

   INFO  Running migrations.  

  0001_01_01_000000_create_users_table ............................................................................................... 226.06ms DONE
  0001_01_01_000001_create_cache_table ................................................................................................ 89.61ms DONE
  0001_01_01_000002_create_jobs_table ................................................................................................ 182.11ms DONE
  2024_07_13_135359_create_personal_access_tokens_table .............................................................................. 127.61ms DONE

無事、実行された。

他に試したこと

すべてのイメージとボリュームを削除する

下記の記事の内容で解決していた方がいらっしゃったので試してみましたが、うまくいかず。

zenn.dev

ユーザー権限のチェック

MySQLに接続して、ユーザーの権限を確認しようとしましたが、初期化する前だとログインが弾かれてしまっていました。

初期化したら接続できるようになったのでユーザーの権限が確認できました。

$ docker-compose exec mysql bash
bash-4.4# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.32 MySQL Community Server - GPL

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> select user, host from mysql.user
    -> ;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| root             | %         |
| sail             | %         |
| healthchecker    | localhost |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
7 rows in set (0.00 sec)

mysql> exit
Bye
bash-4.4# exit
exit

.env を作成せずにsailを実行するとコンテナが誤って作成されてしまうみたいですね。気をつけなきゃ。

sail関連の記事

hal40n.com