💡
[docker][laravel] マイグレーションのエラー
マイグレーションでエラー発生
$ php artisan migrate
In Connection.php line 669:
SQLSTATE[HY000]: General error: 3675 Create table/tablespace 'migrations' failed, as disk is full (SQL: create table `migrations`
(`id` int unsigned not null auto_increment primary key, `migration` varchar(255) not null, `batch` int not null) default character
set utf8mb4 collate 'utf8mb4_unicode_ci')
In Exception.php line 18:
SQLSTATE[HY000]: General error: 3675 Create table/tablespace 'migrations' failed, as disk is full
In PDOStatement.php line 117:
SQLSTATE[HY000]: General error: 3675 Create table/tablespace 'migrations' failed, as disk is full
disk is fullとのことだったので、docker desktopの設定、ResorcesからDisk image sizeを上げたところ別のエラーに変化した。
$ php artisan migrate
Illuminate\Database\QueryException : SQLSTATE[HY000] [2002] Connection refused (SQL: select * from information_schema.tables where table_schema = db and table_name = migrations and table_type = 'BASE TABLE')
at /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Connection.php:664
660| // If an exception occurs when attempting to run a query, we'll format the error
661| // message to include the bindings with SQL, which will make this exception a
662| // lot more helpful to the developer instead of just the database's errors.
663| catch (Exception $e) {
> 664| throw new QueryException(
665| $query, $this->prepareBindings($bindings), $e
666| );
667| }
668|
Exception trace:
1 PDOException::("SQLSTATE[HY000] [2002] Connection refused")
/var/www/html/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70
2 PDO::__construct("mysql:host=mysql;port=3308;dbname=db", "password", "password", [])
/var/www/html/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70
Please use the argument -v to see more details.
原因としては、mysqlのポート被りを防ぐためにホスト側で3308を使っていて、.envも3308と指定していた。
ただコンテナ側からみた際は3306で接続しているからこの変更は必要なかった。
.envを3306に戻してマイグレーションコマンドを叩くと成功した。
Discussion