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

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

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

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

PHP

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

Docker

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

Q&A

解決済

php artisan migrateでエラーが出ます。

退会済みユーザー

退会済みユーザー

総合スコア0

Laravel

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

PHP

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

Docker

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

2回答

0グッド

0クリップ

1797閲覧

投稿2020/01/08 07:33

編集2020/01/08 08:55

php artisan migrateをするとエラーが出ますが解決できず困っており、解決策を教えて頂けないでしょうか。
エラー内容とenvファイルの一部は下記になります。

###エラー内容

Illuminate\Database\QueryException : SQLSTATE[HY000] [2002] Connection refused (SQL: select * from information_schema.tables where table_schema = hoge and table_name = migrations) at /var/www/vendor/laravel/framework/src/Illuminate/Database/Connection.php:664 660| // If an exception occurs when attempting to run a query, we'll format the error 661| // message to include the bindings with SQL, which will make this exception a 662| // lot more helpful to the developer instead of just the database's errors. 663| catch (Exception $e) { > 664| throw new QueryException( 665| $query, $this->prepareBindings($bindings), $e 666| ); 667| } 668| Exception trace: 1 Doctrine\DBAL\Driver\PDOException::("SQLSTATE[HY000] [2002] Connection refused") /var/www/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:31 2 PDOException::("SQLSTATE[HY000] [2002] Connection refused") /var/www/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:27 Please use the argument -v to see more details.

###.envファイル(一部)

APP_NAME=Laravel APP_ENV=local APP_DEBUG=true APP_URL=nginx LOG_CHANNEL=stack DB_CONNECTION=mysql DB_HOST=mysql DB_PORT=3306 DB_DATABASE=hoge DB_USERNAME=root DB_PASSWORD=secret

また、db接続ができておらず、.envの設定が間違えているなどの記事もあるのですが、sequel proでは接続できました。

よろしくお願いいたします。

ーーー 追記 ーーー
dockerの設定
###.env

MYSQL_VERSION=5.7 MYSQL_DATABASE=hoge MYSQL_USER=root MYSQL_PASSWORD=secret MYSQL_PORT=4306 MYSQL_ROOT_PASSWORD=secret MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d

###Dockerfile

ARG MYSQL_VERSION=latest FROM mysql:${MYSQL_VERSION} LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>" ##################################### # Set Timezone ##################################### ARG TZ=JST ENV TZ ${TZ} RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone && chown -R mysql:root /var/lib/mysql/ COPY my.cnf /etc/mysql/conf.d/my.cnf CMD ["mysqld"] EXPOSE 3306

###my.cnf

# The MySQL Client configuration file. # # For explanations see # http://dev.mysql.com/doc/mysql/en/server-system-variables.html [mysql] [mysqld] sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION" character-set-server=utf8 explicit_defaults_for_timestamp = true skip-grant-tables

docker-compose.yml

version: '3' networks: frontend: driver: ${NETWORKS_DRIVER} backend: driver: ${NETWORKS_DRIVER} volumes: mysql: driver: ${VOLUMES_DRIVER} redis: driver: ${VOLUMES_DRIVER} services: ### Workspace Utilities ################################## workspace: build: context: ./workspace args: - COMPOSER_GLOBAL_INSTALL=${WORKSPACE_COMPOSER_GLOBAL_INSTALL} - LARADOCK_PHP_VERSION=${PHP_VERSION} - INSTALL_NODE=${WORKSPACE_INSTALL_NODE} - NODE_VERSION=${WORKSPACE_NODE_VERSION} - NPM_REGISTRY=${WORKSPACE_NPM_REGISTRY} - INSTALL_YARN=${WORKSPACE_INSTALL_YARN} - YARN_VERSION=${WORKSPACE_YARN_VERSION} - INSTALL_NPM_GULP=${WORKSPACE_INSTALL_NPM_GULP} - INSTALL_NPM_BOWER=${WORKSPACE_INSTALL_NPM_BOWER} - INSTALL_NPM_VUE_CLI=${WORKSPACE_INSTALL_NPM_VUE_CLI} - INSTALL_NPM_ANGULAR_CLI=${WORKSPACE_INSTALL_NPM_ANGULAR_CLI} - INSTALL_PHPREDIS=${WORKSPACE_INSTALL_PHPREDIS} - PUID=${WORKSPACE_PUID} - PGID=${WORKSPACE_PGID} - TZ=${WORKSPACE_TIMEZONE} volumes: - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG} extra_hosts: - "dockerhost:${DOCKER_HOST_IP}" ports: - "${WORKSPACE_SSH_PORT}:22" tty: true environment: - PHP_IDE_CONFIG=${PHP_IDE_CONFIG} # - DOCKER_HOST=tcp://docker-in-docker:2375 networks: - frontend - backend # links: # - docker-in-docker ### PHP-FPM ############################################## php-fpm: build: context: ./php-fpm args: - INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH} - LARADOCK_PHP_VERSION=${PHP_VERSION} - INSTALL_MYSQLI=${PHP_FPM_INSTALL_MYSQLI} - INSTALL_INTL=${PHP_FPM_INSTALL_INTL} - INSTALL_IMAGEMAGICK=${PHP_FPM_INSTALL_IMAGEMAGICK} - INSTALL_OPCACHE=${PHP_FPM_INSTALL_OPCACHE} - INSTALL_IMAGE_OPTIMIZERS=${PHP_FPM_INSTALL_IMAGE_OPTIMIZERS} - INSTALL_PHPREDIS=${PHP_FPM_INSTALL_PHPREDIS} - ADDITIONAL_LOCALES=${PHP_FPM_ADDITIONAL_LOCALES} volumes: - ./php-fpm/php${PHP_VERSION}.ini:/usr/local/etc/php/php.ini - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG} expose: - "9000" extra_hosts: - "dockerhost:${DOCKER_HOST_IP}" environment: - PHP_IDE_CONFIG=${PHP_IDE_CONFIG} # - DOCKER_HOST=tcp://docker-in-docker:2375 depends_on: - workspace networks: - backend # links: # - docker-in-docker ### NGINX Server ######################################### nginx: build: context: ./nginx args: - PHP_UPSTREAM_CONTAINER=${NGINX_PHP_UPSTREAM_CONTAINER} - PHP_UPSTREAM_PORT=${NGINX_PHP_UPSTREAM_PORT} - CHANGE_SOURCE=${CHANGE_SOURCE} volumes: - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG} - ${NGINX_HOST_LOG_PATH}:/var/log/nginx - ${NGINX_SITES_PATH}:/etc/nginx/sites-available - ${NGINX_SSL_PATH}:/etc/nginx/ssl ports: - "${NGINX_HOST_HTTP_PORT}:80" - "${NGINX_HOST_HTTPS_PORT}:443" depends_on: - php-fpm networks: - frontend - backend ### MySQL ################################################ mysql: build: context: ./mysql args: - MYSQL_VERSION=${MYSQL_VERSION} environment: - MYSQL_DATABASE=${MYSQL_DATABASE} - MYSQL_USER=${MYSQL_USER} - MYSQL_PASSWORD=${MYSQL_PASSWORD} - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - TZ=${WORKSPACE_TIMEZONE} volumes: - ${DATA_PATH_HOST}/mysql:/var/lib/mysql - ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d ports: - "${MYSQL_PORT}:3306" networks: - backend ### Redis ################################################ redis: build: ./redis volumes: - ${DATA_PATH_HOST}/redis:/data ports: - "${REDIS_PORT}:6379" networks: - backend

以下のような質問にはグッドを送りましょう

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

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

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

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

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

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

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

適切な質問に修正を依頼しましょう。

tetsunosuke

2020/01/08 08:05

タグにDockerとついているのが気になりました。 コンテナの構成はどうなっていますか? アプリケーションが動作しているものと同一の領域にDBがないような気がします。
退会済みユーザー

退会済みユーザー

2020/01/08 08:18

dockerの構成を追加いたしました。 よろしくお願いいたします。

回答2

0

ベストアンサー

全てのdockerコンテナやイメージ、dbを削除して作り直しまして、なんとか動くようになりました。

投稿2020/01/09 05:40

退会済みユーザー

退会済みユーザー

総合スコア0

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

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

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

このような回答には修正を依頼しましょう。

2020/01/09 06:24

こちらの回答が他のユーザーから「過去の低評価」という指摘を受けました。

0

Laravel の .env ですが、

DB_HOST=127.0.0.1

と指定されてます。
Dockerを使われてるのでしたらここはDBのサービス名を指定してください。

投稿2020/01/08 08:28

ucan-lab

総合スコア886

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

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

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

このような回答には修正を依頼しましょう。

回答へのコメント

退会済みユーザー

退会済みユーザー

2020/01/08 08:36

失礼しました。 色々試して見た中での戻し忘れです。 DB_HOST=mysqlにしても同じエラーのままになります。
ucan-lab

2020/01/08 08:42

サービス名は mysql 正しいですか? docker-compose を使っていたら、ymlも本文に追記してもらいたいです。 docker-compose config --service コマンドで念のためサービス名を確認してもらいたいです。
退会済みユーザー

退会済みユーザー

2020/01/08 08:56

docker-composeを追記致しました。 また、docker-compose config --serviceで確認しましたところ、 workspace php-fpm nginx mysql redis のように表示されましたので、mysqlで問題ないかと思われます。
ucan-lab

2020/01/08 09:15

サービス名はokですね。docker-compose.ymlはLaradockがベースになってるんですかね? あとはLaravelにDB情報が正しく設定されてるか確認しましょう。 $ php artisan tinker config('database.default'); config('database.connections.mysql.host'); config('database.connections.mysql.port'); config('database.connections.mysql.database'); config('database.connections.mysql.username'); config('database.connections.mysql.password');
退会済みユーザー

退会済みユーザー

2020/01/08 10:16

ありがとうございます。 $ php artisan tinkerで確認しましたところ、下記のようになっていました。 設定は大丈夫そうです。。。 >>> config('database.default'); => "mysql" >>> config('database.connections.mysql.host'); => "mysql" >>> config('database.connections.mysql.port'); => "3306" >>> config('database.connections.mysql.database'); => "hoge" >>> config('database.connections.mysql.username'); => "root" >>> config('database.connections.mysql.password'); => "secret"
退会済みユーザー

退会済みユーザー

2020/01/08 10:21

回答していませんでした。 ベースはLaradockです。

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

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

Laravel

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

PHP

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

Docker

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