質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

1回答

666閲覧

Laravel SailでMySQLが起動できない

kvan

総合スコア41

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2024/08/01 15:11

前提・実現したいこと

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)

何か試せること、お心当たりなどございましたら皆様のお知恵を拝借できれば幸いです。
どうぞよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2024/08/02 03:42

何重にも複雑なことするよりローカルでphp artisan serveとSQLite使えばいい
guest

回答1

0

docker compose down

で一度終了させるのが簡単かと思います。

ボリュームのマウントはコンテナの /var/lib/mysql に対して行われていますが、このディレクトリはMySQLのデータが格納されます。
sockファイルは通常このディレクトリではなく /var/run の中に作成されますので、コンテナを一度削除することで破棄されます。

投稿2024/08/02 19:18

Eggpan

総合スコア3257

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問