laravel8をdockerで構築したく作業していました。
dockerコンテナを立ち上げphp artisan migrateをしlocalhostでページを開いたら以下のエラーがでました。
SQLSTATE[HY000] [2002] No such file or directory (SQL: select exists(select * from `informations` where `number` = 000001) as `exists`)
このページの仕組みとしてはページを開くとレコードを追加する仕組みになっています。
調べてみたところ同じエラーの人は出てきたのですが多くはマイグレーションの段階で出てきたという報告が多く、今回の場合はマイグレーションは通っていたので原因が分かりません。
phpmyadminをみてもそれぞれのテーブルは存在します。
envファイルは以下のような形です。
env
1DB_CONNECTION=mysql 2DB_HOST=localhost 3DB_PORT=3306 4DB_DATABASE=database 5DB_USERNAME=root 6DB_PASSWORD=root
ご教授の程よろしくお願いします。
#追記
マイグレーションが通るのはローカルでのみみたいです。
コンテナの中でphp artisan migrate をすると
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:692 688▕ // If an exception occurs when attempting to run a query, we'll format the error 689▕ // message to include the bindings with SQL, which will make this exception a 690▕ // lot more helpful to the developer instead of just the database's errors. 691▕ catch (Exception $e) { ➜ 692▕ throw new QueryException( 693▕ $query, $this->prepareBindings($bindings), $e 694▕ ); 695▕ } 696▕
と似たようなエラーがでました。
コンテナからの接続先が違うのでしょうか?
#追記2
docker-compose.ymlは以下の形です。
docker
1 # db 2 db: 3 image: mariadb 4 container_name: database_mariadb 5 environment: 6 MYSQL_ROOT_PASSWORD: root 7 MYSQL_DATABASE: database 8 MYSQL_USER: root 9 MYSQL_PASSWORD: root 10 TZ: 'Asia/Tokyo' 11 command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci 12 volumes: 13 - ./docker/db/data:/var/lib/mysql 14 ports: 15 - 3306:3306
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/06 03:05
2021/07/06 03:07