web-dev-qa-db-ja.com

SQLSTATE [HY000] [2002] Laravel homestead内で接続が拒否されました

LaravelでMac OS XおよびHomestead 2.2.1を使用する5.2。

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


これらの。env設定でLaravelプロジェクトをセットアップしました

DB_Host=127.0.0.1
DB_DATABASE=tcv
DB_USERNAME=Homestead
DB_PASSWORD=secret

また、DB_Hostにはlocalhostを、DB_USERNAMEおよびDB_PASSWORDにはrootを試しました。そして、これらのすべての可能なバリエーションがまとめられます!


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

Host       127.0.0.1
Username   Homestead
Password   secret
Database   tcv
Port       33060

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

私が知る限り、Sequel Proで接続できるため、構成の問題です。しかし、正直なところ、何がセットアップが間違っているのか、おかしくはありません。

助けてくれてありがとう !!

編集
何らかの理由で、プロジェクトをMAMPに移動してphp artisan migrateを実行すると、同じSQLSTATE[HY000] [2002] Connection refusedエラーが発生します。
今、私は完全に失われています...

32
nclsvh

私はちょうどこれに出くわし、。envファイルでこれを127.0.0.1からlocalhostに変更すると修正されることがわかりました。

DB_Host=localhost
51
Richard Hood

Mac OSでMAMPを使用している場合は、mysqlデータベース設定ファイルに次の行を追加します

'unix_socket' => env( 'DB_SOCKET'、 '')、

.envファイルに追加します

DB_SOCKET =/Applications/MAMP/tmp/mysql/mysql.sock
23
Albert A

127.0.0.1の代わりにlocalhost。envファイルで)を使用して、コマンドを実行します。

php artisan config:cache
14
Lode Alaert

問題がある他の人のための別の解決策。私はすべての設定を修正しましたが、何らかの理由で私の変更は更新されませんでした。 Laravelは実際に設定ファイルをキャッシュします(これは完全にバカだと思います)。

ここに設定を更新した後の私のソリューションがありました:

php artisan config:clear

10
Andrei

私はこの問題を抱えていました。 Sequel Proに接続する場合、33060をポートとして使用する必要がありますが、。envファイルでは3306である必要があります。 。envファイルに33060がありました。それを3306に変更し、機能しました。

7
Tom Kincaid

これは簡単な修正です。 mysqlデータベースがサーバーへの接続を失いました。ローカルサーバーを実行している場合は、ターミナルでこれを実行します。

mysqld

これでデータベースが再接続されます。次に(homebrewを使用している場合)実行します:

brew services start mysql

これにより、ログイン時にデータベースが自動的に接続されます。

5
SouthernBoy

私は同じ問題を抱えていました、これを試してみてください

DB_Host=localhost

mysqlが起動していないか、ポートに接続していない可能性があります3306

3
gxet4n

すべての構成を。envファイルに配置した後、php artisan serveを既に実行している場合は、RESTART IT

私の場合、このエラーは青く表示されていました。私が気づいた謎のエラーを見つめながら、vmの外でコマンドを実行しようとしていた...

3
bruddha

私、私は浮浪者を使用していますが、ボックスの外側でPHPアーティザンを実行していますので、基本的には許可がありません

1
Marlon Bernal

資格情報を引用符で囲む私にとっては、トリックをしました

DB_CONNECTION=mysql
DB_Host=localhost
DB_PORT=3306
DB_DATABASE='zzz'
DB_USERNAME='yyy'
DB_PASSWORD='XXX'
1
Max

私は同様の問題を抱えていましたが、ここには何の提案もありませんでした。この問題を解決したのは、アプリケーション名とデータベースホスト名を同じ値に設定することでした。私の場合、127.0.0.1は正常に機能します。

APP_URL=127.0.0.1

DB_CONNECTION=mysql
DB_Host=127.0.0.1
DB_PORT=3306
DB_DATABASE=zzz
DB_USERNAME=yyy
DB_PASSWORD=XXX
0
LukaszTaraszka
DB_CONNECTION=mysql
DB_Host=mysql
DB_PORT=8080
DB_DATABASE=flap_safety
DB_USERNAME=root
DB_PASSWORD=mysql

上記は私の.envです

    'mysql' => [
        'driver' => 'mysql',
        'url' => env('DATABASE_URL'),
        'Host' => env('DB_Host', 'mysql'),
       // 'port' => env('DB_PORT', '8080'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', 'mysql'),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'prefix_indexes' => true,
        'strict' => true,
        'engine' => null,
        'options' => extension_loaded('pdo_mysql') ? array_filter([
            PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
        ]) : [],
    ],

上記は私のdatabase.phpファイルです。 database.phpからポートをコメントアウトしたところ、うまくいきました。

0
sohaib tanveer

Homesteadを使用している場合は、デフォルトのmysqlポートで実行する必要があります。したがって、DB_PORT=33060を使用する代わりに、.envファイルでDB_PORT=3306を使用する必要があります。また、ホームステッドインストールでphp artisan migrateコマンドを実行することを忘れないでください。すべて問題ありません。

それが役に立てば幸いです。

0
Lamin Barrow

長い間PHP職人が再起動していない可能性があるからかもしれません

したがって、DBの変更とconfig:clear Tinkerが正常に動作した後

ただし、ブラウザが新しいDB接続に影響するようにするには、再実行する必要があります

pHPアーティザンサーブ

0
shivanikoko

更新して、ホストは問題ではなく、実際にはポートであるようです。

そのため、実際には、ポート06はブラウザのテスト用ですが、端末とSequel Proでは06です。 Homestead.yamlに追加してここに設定することと何か関係がありますか?

Laravelに関連するセットアップを読み取ると、次のように表示されます。

MySQL:06→転送先06

0
Paul

私の場合、Dockerを使用して同じエラーが発生し、.envファイルにこのDB_Host=dbを設定するのがコツでした。dbはデータベースサーバーを実行しているコンテナの名前です。

  1. タスクマネージャからsqldを終了します
  2. xamppコントロールパネルからMySQLを停止し、再起動します

それでも同じ問題が発生する場合は、ルートフォルダーから実行します

php artisan cache:clear
php artisan config:cache
php artisan serve
  1. それでも問題が解決しない場合は、Ubuntuアプリなどを使用してSQLサーバーの複数のコピーを使用しているかどうかを確認します。使用している場合は、ubuntuでMySQLサーバーを停止します

    SudoサービスMySQLの停止

0
zabi

問題が修正されました。

同じ問題があり、.env File 127.0.0.1localhost DB_Host = localhostに変換するだけで修正しました。

何もconfig/database.phpに変更する必要はありません

enter image description here

0
Ashwani Garg

私にとってそれを解決した唯一のことは、接続の詳細を。envファイルの代わりにconfig/database.phpに置くことでした。お役に立てれば

0
Maxime Barber

出会った

SQLSTATE [HY000] [2002]接続が拒否されました(SQL:select * from projects)

原因は、MySQLサーバーを起動していないことです。

エラーのトラブルシューティングの最初のステップとして、MySQLが実行されていることを確認すると役立つ場合があります。

0
Steven

サーバーを再起動するだけで、"bam"修正されました。

0
Chad C.