
前提・実現したいこと
Github Codespaceで、Laravel Sailを使って環境構築がしたいです。
<環境>
・Laravel 10.*系
・php 8.1
・DBはMySQL
・phpMyAdminを導入したい
発生している問題・エラーメッセージ
Github Codespaceで sail up -d を実行後、
sail bash → php artisan migrate の順に実行すると下記のエラーが出ます。
$ php artisan migrate Illuminate\Database\QueryException could not find driver (Connection: mysql, SQL: select table_name as `name`, (data_length + index_length) as `size`, table_comment as `comment`, engine as `engine`, table_collation as `collation` from information_schema.tables where table_schema = '【table名】' and table_type in ('BASE TABLE', 'SYSTEM VERSIONED') order by table_name) at vendor/laravel/framework/src/Illuminate/Database/Connection.php:829 825▕ $this->getName(), $query, $this->prepareBindings($bindings), $e 826▕ ); 827▕ } 828▕ ➜ 829▕ throw new QueryException( 830▕ $this->getName(), $query, $this->prepareBindings($bindings), $e 831▕ ); 832▕ } 833▕ } +36 vendor frames 37 artisan:35 Illuminate\Foundation\Console\Kernel::handle()
$ sail logs mysql mysql-1 | 2024-08-01T07:22:45.668147Z 0 [ERROR] [MY-010259] [Server] Another process with pid 60 is using unix socket file. mysql-1 | 2024-08-01T07:22:45.668183Z 0 [ERROR] [MY-010268] [Server] Unable to setup unix socket lock file. mysql-1 | 2024-08-01T07:22:45.668194Z 0 [ERROR] [MY-010119] [Server] Aborting
Docker Desktopを用いた環境でも同様のトラブルに遭遇したことがあり、
その際はGUIからvolumeのmysql.sockとmysql.sock.lockを削除することで当該事象が改善しました。
しかしながらGithub Codespacesのターミナルからmysql.sock・mysql.sock.lockの配置場所を見つけ出せず、今回の質疑に至った次第です。
該当のソースコード
docker-compose.yml(抜粋)
yml
1 mysql: 2 image: 'mysql/mysql-server:8.0' 3 ports: 4 - '${FORWARD_DB_PORT:-3306}:3306' 5 environment: 6 MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}' 7 MYSQL_ROOT_HOST: '%' 8 MYSQL_DATABASE: '${DB_DATABASE}' 9 MYSQL_USER: '${DB_USERNAME}' 10 MYSQL_PASSWORD: '${DB_PASSWORD}' 11 MYSQL_ALLOW_EMPTY_PASSWORD: 'true' 12 volumes: 13 - 'sail-mysql:/var/lib/mysql' 14 - './vendor/laravel/sail/database/mysql/create-testing-database.sh:/docker-entrypoint-initdb.d/10-create-testing-database.sh' 15 networks: 16 - sail 17 healthcheck: 18 test: 19 - CMD 20 - mysqladmin 21 - ping 22 - '-p${DB_PASSWORD}' 23 retries: 3 24 timeout: 5s 25 phpmyadmin: 26 image: phpmyadmin/phpmyadmin 27 links: 28 - mysql:mysql 29 ports: 30 - 8080:80 31 environment: 32 MYSQL_USERNAME: '${DB_USERNAME}' 33 MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}' 34 PMA_HOST: mysql 35 networks: 36 - sail
env
1DB_CONNECTION=mysql 2DB_HOST=db 3DB_PORT=3306 4DB_DATABASE=【table名】 5DB_USERNAME=root 6DB_PASSWORD=password
自分で調べたことや試したこと
https://funbrew.tech/2023/07/31/4870/
を基に、/etc , /var/lib などからmysql.sock , mysql.sock.lockファイル探し(これが見つけられません)
findコマンド等を使って探したいところですが、ほとんどのディレクトリで「permission denied」となり検索することができませんでした。
sail build --no-cacheの実行
.envのDB_HOSTを「db」「mysql」の2パターンに変更して、
sail build --no-cache実行 → 再度php artisan migrateの実行
(キャッシュが残らないようphp artisan config:clear → tinkerでenv('DB_HOST')を実行し変更出来ていることを確認してから実施しました)
補足情報
・Github Codespaces(クラウドIDE)で作業したい理由ですが、メインPCの調子が悪くなりサブ機(メモリ8GB)で作業をしなくてはならず、スペック不足が発生しているためです。
・docker-compose.ymlは既にDocker Desktopで正常に動作しているものを使っています。(windowsPC)
何か試せること、お心当たりなどございましたら皆様のお知恵を拝借できれば幸いです。
どうぞよろしくお願いいたします。

