自分はこのやり方でできたという記録用です。私はXAMPPを使っていましたが、Dockerに切り替えたいと思います。
既にアプリの中身は完成している状態から始めます。
プロジェクトのターミナルでDocker imageをダウンロード
docker pull mysql
mysqlサーバーを立てる
docker run --name mysql-server -e MYSQL_ROOT_PASSWORD="admin" -d -p 53306:3306 mysql
mysqlへログイン
mysql -uroot -padmin -h 127.0.0.1 -P 53306
XAMPPで作成していたデータベースをDockerのmysqlでも作成します。
新しいデータベースをXAMPPのものと同じように作り変えます。
php artisan migrate:fresh
エラー
SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client (SQL: SHOW FULL TABLES WHERE table_type = 'BASE TABLE')
認証方式を変えます。
SELECT user, host, plugin FROM mysql.user;
//私の結果
+------------------+-----------+-----------------------+
| user | host | plugin |
+------------------+-----------+-----------------------+
| root | % | caching_sha2_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session | localhost | caching_sha2_password |
| mysql.sys | localhost | caching_sha2_password |
| root | localhost | caching_sha2_password |
+------------------+-----------+-----------------------+
私の場合rootの二つを変えました。
alter user 'root'@'%' identified with mysql_native_password by 'pass';
alter user 'root'@'localhost' identified with mysql_native_password by 'pass';
envファイルを書き換えます。
DB_CONNECTION=mysql
DB_HOST=localhost //変更
DB_PORT=53306 //変更
DB_DATABASE=database_name //自分が新しく作ったデータベース名
DB_USERNAME=root
DB_PASSWORD=pass //先程のパスワード
ここまでできたらマイグレーションします。
php artisan migrate:fresh
php artisan serveと打つとデータベースにデータが入っていない状態で立ち上がると思います。シーダーファイルの中身を入れます。
php artisan db:seed
これでデータベースの移行が完了しました。
参考
https://tyablog.net/2017/06/10/docker-setup-mysql/
https://symfoware.blog.fc2.com/blog-entry-2160.html