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

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

ただいまの
回答率

90.39%

  • Laravel 5

    2693questions

    Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

  • Docker

    1133questions

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

Laravelでmysqlに繋がらない

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 606

isaatsu

score 4

前提・実現したいこと

Laravelで参考著書を元にCRUDの基本的なシステムを作っています。
(参考著書 PHPフレームワーク Laravel Webアプリケーション開発 バージョン5.5 LTS対応)
mysqlに繋がらない状態です。
思い当たる物を試してみましたが、わからないため質問させていただきました。

[laravel_docker]
$ mysql --host=localhost --user=homestead--password=securet homestead
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

やってみたこと

restartで変わらずです。

[laravel_docker]
$ sudo touch /tmp/mysql.sock
Password:
[laravel_docker]
$ sudo mysql.server restart
ERROR! MySQL server process #29597 is not running!
Starting MySQL
... ERROR! The server quit without updating PID file (/usr/local/var/mysql/ihitoshitokushinoMacBook-Air.local.pid).

開発環境

dockerでLaradockを使用しています。

お手数おかけしますが、よろしくお願いいたします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • mts10806

    2019/01/07 10:10

    「Docker」もタグに追加しておいてください。

    キャンセル

  • isaatsu

    2019/01/07 20:38

    返信ありがとうございます!追加しました!

    キャンセル

回答 1

checkベストアンサー

+2

$ sudo mysql.server restart
ERROR! MySQL server process #29597 is not running!
Starting MySQL
... ERROR! The server quit without updating PID file (/usr/local/var/mysql/ihitoshitokushinoMacBook-Air.local.pid).

MySQLの起動は、dockerコンテナ内で行わなければいけません。
慣れていない方はよくdockerコンテナの外で各種サーバを起動しがちです。
正しくコンテナを起動できていれば、MySQLなども起動できているはずです。

$ mysql --host=localhost --user=homestead--password=securet homestead

laradockであれば、接続先ホストはmysqlで接続できるはずです。

念の為、正しい手順を以下に一覧しておきます。
git clone https://github.com/laradock/laradockは終わっているものとして。

  1. cd laradock
  2. docker-compose up -d nginx mysql workspace
  3. docker-compose exec workspace /bin/bash
  4. mysql -h mysql -u homestead -phomestead homestead

.envの修正について

laradock/.env の下記の項目をtrueに変更します。

WORKSPACE_INSTALL_MYSQL_CLIENT=false

編集後、docker-compose build workspaceでビルドします。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/01/07 20:34

    ご返信ありがとうございます!
    度々申し訳ございません。laradockの中で解決できると思っておりましたが、以下の通りです。
    お手上げ状態で申し訳ございません。ご教授のほどどうかお願いいたします。

    $ cd laradock
    [laradock]
    $ docker-compose up -d nginx mysql workspace
    laradock_mysql_1 is up-to-date
    laradock_docker-in-docker_1 is up-to-date
    laradock_workspace_1 is up-to-date
    laradock_php-fpm_1 is up-to-date
    laradock_nginx_1 is up-to-date
    [laradock]
    $ docker-compose exec workspace /bin/bash
    # mysql -h mysql -u homestead -phomestead homestead
    bash: mysql: command not found
    # mysql --host=localhost --user=homestead--password=securet homestead
    bash: mysql: command not found

    <やってみたこと>
    # brew link mysql
    bash: brew: command not found

    お手数おかけしますが、よろしくお願いいたします。

    キャンセル

  • 2019/01/07 20:49 編集

    コンテナの内外を誤解、混同していらっしゃるようです。
    コンテナ内ではbrewコマンドは使えません。
    また、コンテナ外からmysqlに接続することも(できなくはないですが)基本やりません。

    > bash: mysql: command not found

    とあるとおり、コンテナ内にmysql-clientがインストールされていません。
    `apt update && apt install -y mysql-client`でインストールするか、コンテナ外で~~誤:docker-compose.yml~~ 正:.envを編集してコンテナをビルドし直すかのいずれかを行う必要があります。

    キャンセル

  • 2019/01/07 20:52

    すみません、移動中のため、docker-compose.ymlを編集する方法は、のちほど。

    キャンセル

  • 2019/01/08 22:05

    ご返答ありがとうございます!申し訳ございません、ぜひご教授のほどお願いいたしますmm

    キャンセル

  • 2019/01/08 23:04

    遅くなりました。追記しました。
    修正すべきは、docker-compose.ymlではなく、.envでした。

    キャンセル

  • 2019/01/09 22:25 編集

    ご返信ありがとうございますmm
    進展はありましたが、すいません、まだハマっています。。

    <.envファイル>
    WORKSPACE_INSTALL_MYSQL_CLIENT=false に変更

    $ docker-compose build workspace
    $ docker-compose up -d nginx mysql workspace
    $ docker-compose exec workspace /bin/bash
    # apt update && apt install -y mysql-client
    # mysql -h mysql -u homestead -phomestead homestead
    mysql: [Warning] Using a password on the command line interface can be insecure.
    ERROR 1045 (28000): Access denied for user 'homestead'@'172.19.0.4' (using password: YES)

    <やってみたこと>
    参考
    https://stackoverflow.com/questions/29756194/access-denied-for-user-homesteadlocalhost-using-password-yes

    .env で DB_HOST=127.0.0.1 に変更 →変わらず、、

    度々申し訳ございません、ご教授のほどよろしくお願いいたします。

    キャンセル

  • 2019/01/09 22:39

    > # mysql -h mysql -u homestead -phomestead homestead
    デフォルトではパスワードはsecretだったと思いますが、.envで変更していますでしょうか。

    キャンセル

  • 2019/01/10 23:20

    いえ、secretのままです!

    .env
    DB_PASSWORD=secret

    キャンセル

  • 2019/01/10 23:47

    であれば、-pオプション間違えてますね。

    キャンセル

  • 2019/01/11 00:11

    これですか?
    $ cp env-example .env

    キャンセル

  • 2019/01/11 08:15

    # mysql -h mysql -u homestead -psecret homestead
    が正解です

    キャンセル

  • 2019/01/11 22:05

    すいません、同じくです、、mm

    # mysql -h mysql -u homestead -psecret homestead
    mysql: [Warning] Using a password on the command line interface can be insecure.
    ERROR 1045 (28000): Access denied for user 'homestead'@'172.19.0.4' (using password: YES)

    キャンセル

  • 2019/01/11 22:27

    rootでの接続はできますか?
    homesteadユーザに権限が割り当てられていないだけかと。

    キャンセル

  • 2019/01/11 23:20

    すいません、root権限はこれで合っていますか、、

    root@f112ec98779e:/var/www# mysql -h mysql -u homestead -psecret homestead
    mysql: [Warning] Using a password on the command line interface can be insecure.
    ERROR 1045 (28000): Access denied for user 'homestead'@'172.19.0.4' (using password: YES)

    キャンセル

  • 2019/01/11 23:27

    あっ、こちらですか?
    # mysql -u root -p

    キャンセル

  • 2019/01/11 23:29

    # mysql -u root -p
    Enter password: secure
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

    キャンセル

  • 2019/01/12 09:15

    # mysql -h mysql -u root -p
    です。

    キャンセル

  • 2019/01/12 10:11

    ありがとうございます!あっ、エラー文が変わりました!
    # mysql -h mysql -u root -p
    Enter password:
    ERROR 1045 (28000): Access denied for user 'root'@'172.19.0.4' (using password: YES)

    キャンセル

  • 2019/01/12 14:36

    パスワードは適切なものを入れましたか?デフォルトでは「root」だったりしますが。

    キャンセル

  • 2019/01/12 14:39

    「root」ではダメでした、、他にも「secure」など色々入れましたがダメでした、、

    キャンセル

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

  • ただいまの回答率 90.39%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • Laravel 5

    2693questions

    Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

  • Docker

    1133questions

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