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

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

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

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

PHP

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

Q&A

解決済

4回答

1391閲覧

[laravel]シーディングの実行でConnection refusedが出る

DaisukeMori

総合スコア225

Laravel

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

PHP

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

0グッド

0クリップ

投稿2018/11/26 13:52

編集2018/11/27 00:06

前提

Laravel

seedingを使いデータベースの初期データ追加させたいと思い、
下記参考サイトをみながらやっていたのですが、「シーディングの実行」部分の
「php artisan db:seed」をターミナルを打ち込んだところ「Connection refused」エラーが発生し、データベースに追加できませんでした。

なぜ接続拒否されるか原因がわからず完全に止まっております。
お詳しい方、ご教授お願いできないでしょうか?

ターミナルでのエラー文 $ php artisan db:seed Seeding: companiesTableSeeder In Connection.php line 664: SQLSTATE[HY000] [2002] Connection refused (SQL: insert into `companies` (`n ame`, `email`, `password`, `twitter`, `thumbnail`, `created_at`, `updated_a t`) values (laravelers, laravelers@laravelers.jp, $2y$10$EvRr7eb6GUPfmXJUOc M5TOnMmOmwQmLBPX.f7g2pkrMM7CHNcGlKC, @laravelers, image.jpg, 2018-11-26 13: 37:35, 2018-11-26 13:37:35)) In PDOConnection.php line 50: SQLSTATE[HY000] [2002] Connection refused In PDOConnection.php line 46: SQLSTATE[HY000] [2002] Connection refused

php

1<?php 2// companiesTableSeeder.php 3 4use Illuminate\Database\Seeder; 5 6class companiesTableSeeder extends Seeder 7{ 8 /** 9 * Run the database seeds. 10 * 11 * @return void 12 */ 13 public function run() 14 { 15 DB::table('companies')->insert([ 16 'name'=>'laravelers', 17 'email'=>'laravelers@laravelers.jp', 18 'password'=>Hash::make('laravelers'), 19 'twitter'=>'@laravelers', 20 'thumbnail'=>'image.jpg', 21 'created_at' => new DateTime(), 22 'updated_at' => new DateTime() 23 ]); 24 } 25}

php

1<?php 2// DatabaseSeeder.php(デフォルトであるファイル) 3 4use Illuminate\Database\Seeder; 5 6class DatabaseSeeder extends Seeder 7{ 8 /** 9 * Seed the application's database. 10 * 11 * @return void 12 */ 13 public function run() 14 { 15 // 追加! 16 $this->call(companiesTableSeeder::class); 17 } 18}

追記

DB_Hostを127.0.0.1からmysqlに変更したら
別のエラー文が出ました。

.env詳細 DB_CONNECTION=mysql DB_HOST=mysql DB_PORT=3306 DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret
新たなターミナルエラー文 In Connection.php line 664: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodena me nor servname provided, or not known (SQL: insert into `companies` (`name `, `email`, `password`, `twitter`, `thumbnail`, `created_at`, `updated_at`) values (laravelers, laravelers@laravelers.jp, $2y$10$twy1fK200IRCiBSrr/6Yd .fblJnrBsjoPrdfmhyR.T0tLbQ4E2dK., @laravelers, image.jpg, 2018-11-26 23:56: 02, 2018-11-26 23:56:02)) In PDOConnection.php line 50: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodena me nor servname provided, or not known In PDOConnection.php line 46: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodena me nor servname provided, or not known In PDOConnection.php line 46: PDO::__construct(): php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known

[参考サイト]リンク内容

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

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

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

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

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

kazto

2018/11/26 14:10

データベースは何をお使いでしょうか?(SQLite、MySQL、PostgreSQLなど)
koko_u

2018/11/26 22:06

どのような環境で開発を行っているか(Homestead, Laradock, etc.)、.env ファイルのデータベース接続の設定はどうなっているか、コンソールからCLIでデータベースに接続できるのか、などの環境にまつわる情報を記載しないと適切な回答を得ることは難しいでしょう。
DaisukeMori

2018/11/27 00:06

データベースはMySQL、環境はHomesteadです。
guest

回答4

0

シーディング以前の問題であると推測します。

環境はHomesteadであるなら、データベースの接続先は127.0.0.1で合っているはずです。(Laradockである場合、話が変わってきます)

以下、確認をお願いします。

  1. mysql -h 127.0.0.1 -u homestead -psecretでデータベースにログインできますでしょうか
  2. ログインできた場合: show databases;を実行し、homestead データベースがあるかどうか確認してください
  3. ログインできない場合: エラーメッセージを追記お願いします。

投稿2018/11/27 02:05

kazto

総合スコア7196

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

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

DaisukeMori

2018/11/27 14:32

homestead データベースとテーブルもちゃんとできているのが 確認できました。 php artisan db:seedを打った瞬間 In Connection.php line 664: SQLSTATE[HY000] [2002] Connection refused (SQL: insert into `companies` (`name`, `email`, `password`, `twit ter`, `thumbnail`, `created_at`, `updated_at`) values (laravelers, laravelers@laravelers.jp, $2y$10$s5clBzl CfW89oIl/qEV5/OSlRAx04k9eV0uZBGre1dCPYqtabmKQi, laravelers, image.jpg, 2018-11-27 14:29:41, 2018-11-27 14:2 9:41)) In PDOConnection.php line 50: SQLSTATE[HY000] [2002] Connection refused In PDOConnection.php line 46: SQLSTATE[HY000] [2002] Connection refused が出ます。
DaisukeMori

2018/11/27 14:34

こちらテーブルです mysql> show tables; +---------------------+ | Tables_in_homestead | +---------------------+ | companies | | migrations | | password_resets | | projects | | users | +---------------------+ 5 rows in set (0.00 sec) mysql> show columns from companies; +------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | name | varchar(255) | NO | | NULL | | | email | varchar(255) | NO | | NULL | | | password | varchar(255) | NO | | NULL | | | twitter | varchar(255) | NO | | NULL | | | thumbnail | varchar(255) | NO | | NULL | | | created_at | timestamp | YES | | NULL | | | updated_at | timestamp | YES | | NULL | | +------------+------------------+------+-----+---------+----------------+ 8 rows in set (0.00 sec)
kazto

2018/11/27 23:40

「SHOW GRANTS FOR 'homestead'@'localhost';」で権限を確認していただけますか。
DaisukeMori

2018/11/28 02:05

ご丁寧にありがとうございます。 じつは大変申し訳ないのですが、 コマンドを実行する場所を間違えていただけの単純なことでした。 自己解決のところに解決法を明記しました。
guest

0

自己解決

php artisan db:seedを実行する場所が間違っておりました。

vagrant sshをしてから cd codeで移動し、
このディレクトリ上で上記コマンドを実行したら
初期データが入ってくれました。

投稿2018/11/27 23:39

DaisukeMori

総合スコア225

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

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

0

sakamataさんもおっしゃっている通り、laravelとDBとの連携に問題があるように思います。

①DBが存在しているか
②.envファイルが存在し(.env.exampleだけがある場合は.envのファイル名で複製してください)、
中身がDBと正しく接続できるよう記述できているか
を確認してみるのがいいと思います。


DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=database名
DB_USERNAME=user名
DB_PASSWORD=パスワード

投稿2018/11/26 16:25

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

https://www.google.co.jp/search?q=lalavel+SQLSTATE%5BHY000%5D+%5B2002%5D+Connection+refused

エラーメッセージの大事そうな部分
SQLSTATE[HY000] [2002] Connection refused
laravelでググったら似たようなトラブルと対応策がでてきました。
ご自分の環境に合わせて心当たりのあるトラブルがあるかもしれません。

https://teratail.com/questions/112354
https://qiita.com/pugiemonn/items/f68bd6f688e1bcdd00aa
http://lionsage.hatenablog.com/entry/2017/01/28/212002

投稿2018/11/26 14:56

sakamata

総合スコア203

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問