実現したいこと
Dockerで構築したLaravelをDBに接続
コンテナの中からmysql接続し、migrateしたい。
前提
※Laravelのwelcomeページが表示されるところまで成功しました。
※A5:SQLを用いて、以下の画像の通り設定し接続できることを確認しています。
発生している問題・エラーメッセージ
DBヘ接続できない。
DB_HOSTを下記のいずれかにしてもすべて同じエラーが返ってきます。
外部ツールやコマンドからはmysqlへ接続できるのに、コンテナの中からmigrate時にのみ接続できない。
# php artisan migrate Illuminate\Database\QueryException SQLSTATE[HY000] [2002] No such file or directory (SQL: select * from information_schema.tables where table_schema = database and table_name = migrations and table_type = 'BASE TABLE') at vendor/laravel/framework/src/Illuminate/Database/Connection.php:712 708▕ // If an exception occurs when attempting to run a query, we'll format the error 709▕ // message to include the bindings with SQL, which will make this exception a 710▕ // lot more helpful to the developer instead of just the database's errors. 711▕ catch (Exception $e) { ➜ 712▕ throw new QueryException( 713▕ $query, $this->prepareBindings($bindings), $e 714▕ ); 715▕ } 716▕ } +33 vendor frames 34 artisan:37 Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #
該当のソースコード
env
1APP_NAME=Laravel 2APP_ENV=local 3APP_KEY=base64:C0kDvtLWg/z0Mp/F6fLOCg1eY1MydGjybjWFqtCUsBc= 4APP_DEBUG=true 5APP_URL=http://localhost 6 7LOG_CHANNEL=stack 8LOG_DEPRECATIONS_CHANNEL=null 9LOG_LEVEL=debug 10 11DB_CONNECTION=mysql 12DB_HOST=localhost or db or 127.0.0.1 13DB_PORT=3307 14DB_DATABASE=database 15DB_USERNAME=db-user 16DB_PASSWORD=db-pass 17 18・・・
docker
1version: '3'2services:3 app:4 container_name: app 5 build: ./docker/php 6 volumes:7 - .:/var/www 8 nginx:9 image: nginx 10 container_name: nginx 11 ports:12 - 8001:81 13 volumes:14 - .:/var/www 15 - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf 16 working_dir: /var/www 17 depends_on:18 - app 19 db:20 image: mysql:5.7 21 volumes:22 - ./docker/db/data:/var/lib/mysql 23 - ./docker/db/my.cnf:/etc/mysql/conf.d/my.cnf 24 - ./docker/db/sql:/docker-entrypoint-initdb.d 25 ports:26 - 3307:3306 27 environment:28 MYSQL_ROOT_PASSWORD: root 29 MYSQL_DATABASE: database 30 MYSQL_USER: db-user 31 MYSQL_PASSWORD: db-pass 32 TZ: 'Asia/Tokyo'33 command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci 34・・・
試したこと
補足情報(FW/ツールのバージョンなど)
以下のサイトを参考にしてます。
必ず目を通してください。
https://www.torat.jp/laravel-docker-lemp/
https://posipan.com/docker-laravel-db-connection/
https://www.wakuwakubank.com/posts/596-mysql-8-with-docker/
追記 13:15分
別件ですがオンラインゲームを起動したところ、サーバーへ繋がらなくなってました。パソコン自体の何かの設定が変わったようで、不具合が出てきたため数日前のdockerをいじる前までパソコンシステムの復元を試したところ、ゲームサーバーは繋がるようになりました。何かの参考になれば。
0 コメント