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

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

ただいまの
回答率

90.33%

  • PHP

    21368questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • MySQL

    6194questions

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

  • SQL

    2564questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

  • Laravel 5

    2087questions

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

  • Docker

    808questions

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

Laravel エラー SQLSTATE[HY000] [2002] php_network_getaddresses:

解決済

回答 1

投稿 編集

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

masateru2

score 23

環境 

  • Laravel5.6
  • php7.1
  • mysql5.7

現在Dockerで環境を構築し、ログイン画面を作っていたのですが、アドレスとPWはあっているのですが、ログインをしようとすると以下のエラー文が出てしまいます。

SQLSTATE[HY000] [2002] php_network_getaddresses: 
getaddrinfo failed: nodename nor servname provided, or not known 
(SQL: select * from `users` where `email` = youyou@youyou.co.jp limit 1)

叩いた seeder

<?php

use Illuminate\Database\Seeder;
use App\User;


class UserTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        $user = new User();
        $user->name = 'admin';
        $user->email = 'youyou@youyou.co.jp';
        $user->password = bcrypt('you42');
        $user->save();
    }
}

mysql内のテーブル
パスワードはbcryptで暗号化

mysql> select * from users
+----+-------+-------------------------+--------------------------------------------------------------+----------------+---------------------+---------------------+
| id | name  | email                   | password                                                     | remember_token | created_at          | updated_at          |
+----+-------+-------------------------+--------------------------------------------------------------+----------------+---------------------+---------------------+
|  2 | admin | youyou@youyou.co.jp | $2y$10$vrbkT1/qXbLCGTEz/96IYO9hM1Xijle7vMuIFAUD6fqDkJl5wP0Ny | NULL           | 2018-07-20 19:56:38 | 2018-07-20 19:56:38 |
+----+-------+-------------------------+--------------------------------------------------------------+----------------+---------------------+---------------------+


こちらがmysqlの環境構築に使ったファイルです。
名前はmysqlで作っています。

# docker-compose.yml(mysql)

version: '3'
services:
  mysql:
    image: mysql:5.7
    container_name: mysql5.7
    ports:
      - 3306:3306
    environment:
      - "MYSQL_ALLOW_EMPTY_PASSWORD=yes"
    restart: always

  phpmyadmin:
      image: phpmyadmin/phpmyadmin
      container_name: phpmyadmin
      environment:
        - PMA_HOST=mysql
        - PMA_PORT=3306
        - PMA_USER=root
      ports:
        - 8081:80

networks:
  default:
    external:
      name: common_link

Laravelの.env
こちらのDB_HOSTをdocker-compose.ymlのmysqlの名前に設定

APP_NAME=Laravel
APP_ENV=local
APP_KEY=C0PKuch0a0W2z9kKLufQZJ8VQ=
APP_DEBUG=true
APP_URL=http://cms.local.jp

LOG_CHANNEL=stack

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=cms
DB_USERNAME=root
DB_PASSWORD=

BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
SESSION_LIFETIME=120
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1

MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

Laravelプロジェクトの入っているコンテナのDcokerfileとdocker-compose.yml

version: '3'
services:
  web:
    build:
      context: "./"
      dockerfile: ./Dockerfile
    container_name: "cms"
    command: "/sbin/init"
    volumes:
      - ./html:/var/www/html
      - ./nginx/conf.d:/etc/nginx/conf.d/
      - ./php/php.ini:/etc/php.ini
      - ./php-fpm/www.conf:/etc/php-fpm.d/www.conf
      - ./supervisor/supervisord.conf:/etc/supervisord.conf
      - /Users/user/dev/cms:/var/www/
    ports:
      - 90:80
    environment:
      - VIRTUAL_HOST=cms.local.jp
    tty: true

networks:
  default:
    external:
      name: common_link
FROM amazonlinux:1


RUN rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi &&\
    rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm && \
    rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

RUN yum update -y

RUN yum install -y \
    initscripts \
    sudo \
    git \
    zip \
    unzip \
    nginx --skip-broken \
    httpd \
    wget \
    less \
    libxslt \
    automake \
    autoconf \
    mysql \
    libmcrypt \
    libtool-ltdl \
    gcc gcc-c++

# TODO: supervisorのインストール
# コンテナの構築後に supervisord コマンドを実行してプロセスを起動させる
# RUN yum install -y python27-setuptools.noarch &&\
#    easy_install pip &&\
#    pip install supervisor --install-option="--install-scripts=/usr/bin"

RUN yum install -y --disablerepo=amzn-main,amzn-updates --enablerepo=remi,remi-php71 \
    php php-devel php-common php-mbstring php-pdo php-xml php-fpm php-mysql php-soap php-mcrypt

RUN touch /etc/sysconfig/network

RUN useradd docker

RUN service nginx start &&\
    service php-fpm start &&\
    service iptables stop

RUN chkconfig nginx on &&\
    chkconfig php-fpm on &&\
    chkconfig iptables off

RUN chown -R root:nginx /var/log/nginx

RUN chmod -R 770 /var/log/nginx/

CMD ["nginx", "-g", "daemon off;"]
  • 気になる質問をクリップする

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

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

  • dyoshikawa

    2018/07/23 10:10

    そうなんですね。 docker-compose.yml にLaravelのコンテナが含まれていないのはなぜでしょうか?

    キャンセル

  • masateru2

    2018/07/23 10:11

    すみませんそちらの docker-compose.yml も修正で貼ります

    キャンセル

  • dyoshikawa

    2018/07/23 11:10

    特に理由がなければ、docker-compose.ymlは一つにまとめた方がコンテナ間の接続設定は簡単です。

    キャンセル

回答 1

checkベストアンサー

0

mysqlに繋がってなさそうですね
webサーバ側から
dockerのmysqlに接続できますか

mysql -h ホスト名 -uユーザ名 -p

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2018/07/23 10:09

    dockerのmysqlに接続できますか

    mysql -h ホスト名 -uユーザ名 -p

    確認したところログインすることができました

    キャンセル

  • 2018/07/23 16:38

    そこで入力した情報 ホスト名とユーザ名とパスワードは以下の情報と一致しているでしょうか

    DB_CONNECTION=mysql
    DB_HOST=mysql
    DB_PORT=3306
    DB_DATABASE=cms
    DB_USERNAME=root
    DB_PASSWORD=

    キャンセル

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

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

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

  • PHP

    21368questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • MySQL

    6194questions

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

  • SQL

    2564questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

  • Laravel 5

    2087questions

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

  • Docker

    808questions

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