1. ホーム
  2. php

[解決済み] SQLSTATE[HY000] [2002] Laravelホームステッド内で接続が拒否されました。

2022-02-07 22:55:38

質問

Mac OS XとHomestead 2.2.1、Laravel 5.2を使用しています。

ターミナル(プロジェクトフォルダのhomestead内)でphp artisanを実行すると、利用可能なすべてのコマンドを見ることができます。php artisan migrateを実行しようとすると、接続エラーが発生します。
SQLSTATE[HY000] [2002] Connection refused


Laravelプロジェクトに以下を設定しました。 .env 設定

DB_HOST=127.0.0.1
DB_DATABASE=tcv
DB_USERNAME=homestead
DB_PASSWORD=secret

また、私は ローカルホスト をDB_HOSTに、そして ルート をDB_USERNAMEとDB_PASSWORDに指定します。そして、これらのすべての可能なバリエーションを一緒にしてください


Sequel Pro (db 管理アプリケーション) では、以下の設定で接続できます。

Host       127.0.0.1
Username   homestead
Password   secret
Database   tcv
Port       33060

しかし、このデータベースは明らかに空です、なぜならターミナルから移行できないからです ...

Sequel Proで接続できることから、私の知る限りでは設定の問題だと思います。しかし、正直なところ、何が間違っているのか見当もつきません。

助けてくれてありがとうございます !

EDIT
なぜか、同じ SQLSTATE[HY000] [2002] Connection refused のエラーは、プロジェクトをMAMPに移動して、php artisan migrateを実行したときに発生します。
今、私は完全に失われています...

どのように解決するのですか?

問題点

Laravelでは config/database.php ここには、接続のためのすべてのセットアップが配置されています。また .env ファイルは、プロジェクトのルートディレクトリにあります (時間節約のために誰もが使用します)。これには、プロジェクト全体で使用できる変数が含まれています。

標準的なL5プロジェクトでは、MySqlセクションの config/database.php はこのようになります。

    'mysql' => [
        'driver'    => 'mysql',
        'host'      => env('DB_HOST', 'localhost'),
        'database'  => env('DB_DATABASE', 'forge'),
        'username'  => env('DB_USERNAME', 'forge'),
        'password'  => env('DB_PASSWORD', ''),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
        'engine'    => null,
    ],

ポートが設定されていないことに注意してください

しかし、私の .env ファイルには DB_PORT=33060 . しかし、その value (3306) に読み込まれることはありませんでした。 config/database.php .
だから、私のようなおバカさんになって database.php ファイルを作成します。


修正
を追加するだけです。 'port' => env('DB_PORT', 3306), をconfig/database.phpに追加し、その値を.envに以下のように設定します。 DB_PORT=3306