sail artisan migrate
で初回マイグレーションを実行しようとしたときにタイトルのエラーが発生した。
特に何かしらをいじったわけでもなく、ただLaravelプロジェクトを作成して、sailをインストールしただけだった。
当時の環境
- Laravel11
- Laravel sail
解決のためにやったこと
一度、MySQLコンテナを初期化してから再度sailを立ち上げてマイグレーションを行った。
上記の記事に書いてあるコマンド
$ 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
無事、実行された。
他に試したこと
すべてのイメージとボリュームを削除する
下記の記事の内容で解決していた方がいらっしゃったので試してみましたが、うまくいかず。
ユーザー権限のチェック
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を実行するとコンテナが誤って作成されてしまうみたいですね。気をつけなきゃ。