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

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

ただいまの
回答率

88.60%

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

解決済

回答 4

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,811

DaisukeMori

score 128

 前提

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
// companiesTableSeeder.php

use Illuminate\Database\Seeder;

class companiesTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        DB::table('companies')->insert([
            'name'=>'laravelers',
            'email'=>'laravelers@laravelers.jp',
            'password'=>Hash::make('laravelers'),
            'twitter'=>'@laravelers',
            'thumbnail'=>'image.jpg',
            'created_at' => new DateTime(),
            'updated_at' => new DateTime()
        ]);
    }
}
<?php
// DatabaseSeeder.php(デフォルトであるファイル)

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
         // 追加!
         $this->call(companiesTableSeeder::class);
    }
}

 追記

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  

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

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

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

  • kazto

    2018/11/26 23:10

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

    キャンセル

  • koko_u

    2018/11/27 07:06

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

    キャンセル

  • DaisukeMori

    2018/11/27 09:06

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

    キャンセル

回答 4

+1

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

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

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

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

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2018/11/27 23: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

    が出ます。

    キャンセル

  • 2018/11/27 23: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)

    キャンセル

  • 2018/11/28 08:40

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

    キャンセル

  • 2018/11/28 11:05

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

    キャンセル

check解決した方法

0

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

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

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

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

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

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=パスワード

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

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

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

関連した質問

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