web-dev-qa-db-ja.com

データベースLaravel php職人の移行接続が拒否されました

「phpartisanmigrate」を使用すると、次のエラーメッセージが表示されます。

[Illuminate\Database\QueryException]
SQLSTATE [HY000] [2002]接続が拒否されました(SQL:select * from information_schema.tables where table_schema = Homestead and table_name = Migrations)

[PDOException]
SQLSTATE [HY000] [2002]接続が拒否されました

XAMPPを搭載したMacにLaravelをインストールし、次の設定を行いました。

database.php

'mysql' => [
        'driver' => 'mysql',
        'Host' => env('DB_Host', 'localhost'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
    ],

.env

DB_CONNECTION=mysql
DB_Host=127.0.0.1
DB_PORT=3306
DB_DATABASE=Homestead
DB_USERNAME=Homestead
DB_PASSWORD=secret

私はオンラインで見つけることができるいくつかの解決策を試しましたが、今のところうまくいきませんでした。

3
Femke

これは本当に厄介ですが、DB_Host=127.0.0.1DB_Host=localhostに変更すると問題が解決します。試してみてください(明らかに、ファイルのアクセス許可は正しいものでなければなりません)

16
Marcial Soto

まず、データベースを作成します。詳細については、こちらをご覧ください: http://www.complete-concrete-concise.com/web-tools/creating-a-mysql-database-using-xampp

新しいデータベースの名前がmy_dbだとします。

.envでこれを使用します。

DB_CONNECTION=mysql
DB_Host=127.0.0.1
DB_PORT=3306
DB_DATABASE=my_db
DB_USERNAME=root
DB_PASSWORD=""
3
crabbly

私にとっての解決策は、私がオンラインで見つけた他のどことも異なっていました。

MacでVM(仮想マシン)バージョンのXAMPPを使用していましたが、通常のバージョンとは機能が異なります。 VM XAMPPインターフェイスは次のようになります。

VM XAMPPを使用している場合は、それをアンインストールしてインストールします ここで正しいXAMPPバージョン

新しいバージョンをインストールしたらphp artisan migrate働いた。

1
philyawj

こんにちは、database.phpファイルにunix_socket => env('DB_SOCKET', '')がありますが、env.fileにはDB_SOCKET= /path/to/socketがありません。

$ mysql_config --socketで/ path/to/socketを取得できます

0
YokoH

mAMPを使用している場合は、.envファイル:

DB_Host=localhost
DB_PORT=3306
DB_DATABASE=Homestead
DB_USERNAME=root
DB_PASSWORD=root
0
Saurabh Mistry

Vagrantマシンを使用してすべてを実行していましたが、誤って自分のマシンでコマンドを実行していました。これは誰かに役立つかもしれないと思いました。

0
Guy

Docker を使用しているときに誰かがこれを経験している場合、最初のコンテナーが依存関係のインストールを実行し、2番目のコンテナーがランタイムである多段階ビルドがありました。私が気付いていなかったのは、Laravelスクリプトを使用したインストールでは、bootstrap/cache/config.phpファイルの代わりに使用されるキャッシュされた構成(config/database.php)が生成されることです。

最後のステップとしてDockerfileに以下を追加すると、うまくいきました。

RUN php artisan config:clear
0