「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
私はオンラインで見つけることができるいくつかの解決策を試しましたが、今のところうまくいきませんでした。
これは本当に厄介ですが、DB_Host=127.0.0.1
をDB_Host=localhost
に変更すると問題が解決します。試してみてください(明らかに、ファイルのアクセス許可は正しいものでなければなりません)
まず、データベースを作成します。詳細については、こちらをご覧ください: 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=""
私にとっての解決策は、私がオンラインで見つけた他のどことも異なっていました。
MacでVM(仮想マシン)バージョンのXAMPPを使用していましたが、通常のバージョンとは機能が異なります。 VM XAMPPインターフェイスは次のようになります。
VM XAMPPを使用している場合は、それをアンインストールしてインストールします ここで正しいXAMPPバージョン
新しいバージョンをインストールしたらphp artisan migrate
働いた。
こんにちは、database.phpファイルにunix_socket => env('DB_SOCKET', '')
がありますが、env.fileにはDB_SOCKET= /path/to/socket
がありません。
$ mysql_config --socket
で/ path/to/socketを取得できます
mAMPを使用している場合は、.env
ファイル:
DB_Host=localhost
DB_PORT=3306
DB_DATABASE=Homestead
DB_USERNAME=root
DB_PASSWORD=root
Vagrantマシンを使用してすべてを実行していましたが、誤って自分のマシンでコマンドを実行していました。これは誰かに役立つかもしれないと思いました。
Docker を使用しているときに誰かがこれを経験している場合、最初のコンテナーが依存関係のインストールを実行し、2番目のコンテナーがランタイムである多段階ビルドがありました。私が気付いていなかったのは、Laravelスクリプトを使用したインストールでは、bootstrap/cache/config.php
ファイルの代わりに使用されるキャッシュされた構成(config/database.php
)が生成されることです。
最後のステップとしてDockerfileに以下を追加すると、うまくいきました。
RUN php artisan config:clear