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
エラーが発生します。
今、私は完全に失われています...
私はちょうどこれに出くわし、。envファイルでこれを127.0.0.1
からlocalhost
に変更すると修正されることがわかりました。
DB_Host=localhost
Mac OSでMAMPを使用している場合は、mysqlデータベース設定ファイルに次の行を追加します
'unix_socket' => env( 'DB_SOCKET'、 '')、
.envファイルに追加します
DB_SOCKET =/Applications/MAMP/tmp/mysql/mysql.sock
127.0.0.1
の代わりにlocalhost
(。envファイルで)を使用して、コマンドを実行します。
php artisan config:cache
問題がある他の人のための別の解決策。私はすべての設定を修正しましたが、何らかの理由で私の変更は更新されませんでした。 Laravelは実際に設定ファイルをキャッシュします(これは完全にバカだと思います)。
ここに設定を更新した後の私のソリューションがありました:
php artisan config:clear
私はこの問題を抱えていました。 Sequel Proに接続する場合、33060
をポートとして使用する必要がありますが、。envファイルでは3306
である必要があります。 。envファイルに33060
がありました。それを3306
に変更し、機能しました。
これは簡単な修正です。 mysqlデータベースがサーバーへの接続を失いました。ローカルサーバーを実行している場合は、ターミナルでこれを実行します。
mysqld
これでデータベースが再接続されます。次に(homebrewを使用している場合)実行します:
brew services start mysql
これにより、ログイン時にデータベースが自動的に接続されます。
私は同じ問題を抱えていました、これを試してみてください
DB_Host=localhost
mysql
が起動していないか、ポートに接続していない可能性があります3306
すべての構成を。envファイルに配置した後、php artisan serve
を既に実行している場合は、RESTART IT。
私の場合、このエラーは青く表示されていました。私が気づいた謎のエラーを見つめながら、vmの外でコマンドを実行しようとしていた...
私、私は浮浪者を使用していますが、ボックスの外側でPHPアーティザンを実行していますので、基本的には許可がありません
資格情報を引用符で囲む私にとっては、トリックをしました
DB_CONNECTION=mysql
DB_Host=localhost
DB_PORT=3306
DB_DATABASE='zzz'
DB_USERNAME='yyy'
DB_PASSWORD='XXX'
私は同様の問題を抱えていましたが、ここには何の提案もありませんでした。この問題を解決したのは、アプリケーション名とデータベースホスト名を同じ値に設定することでした。私の場合、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
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からポートをコメントアウトしたところ、うまくいきました。
Homestead
を使用している場合は、デフォルトのmysqlポートで実行する必要があります。したがって、DB_PORT=33060
を使用する代わりに、.envファイルでDB_PORT=3306
を使用する必要があります。また、ホームステッドインストールでphp artisan migrate
コマンドを実行することを忘れないでください。すべて問題ありません。
それが役に立てば幸いです。
長い間PHP職人が再起動していない可能性があるからかもしれません
したがって、DBの変更とconfig:clear Tinkerが正常に動作した後
ただし、ブラウザが新しいDB接続に影響するようにするには、再実行する必要があります
pHPアーティザンサーブ
更新して、ホストは問題ではなく、実際にはポートであるようです。
そのため、実際には、ポート06はブラウザのテスト用ですが、端末とSequel Proでは06です。 Homestead.yamlに追加してここに設定することと何か関係がありますか?
Laravelに関連するセットアップを読み取ると、次のように表示されます。
MySQL:06→転送先06
私の場合、Dockerを使用して同じエラーが発生し、.env
ファイルにこのDB_Host=db
を設定するのがコツでした。dbはデータベースサーバーを実行しているコンテナの名前です。
それでも同じ問題が発生する場合は、ルートフォルダーから実行します
php artisan cache:clear
php artisan config:cache
php artisan serve
それでも問題が解決しない場合は、Ubuntuアプリなどを使用してSQLサーバーの複数のコピーを使用しているかどうかを確認します。使用している場合は、ubuntuでMySQLサーバーを停止します
SudoサービスMySQLの停止
私にとってそれを解決した唯一のことは、接続の詳細を。envファイルの代わりにconfig/database.phpに置くことでした。お役に立てれば
出会った
SQLSTATE [HY000] [2002]接続が拒否されました(SQL:select * from projects)
原因は、MySQLサーバーを起動していないことです。
エラーのトラブルシューティングの最初のステップとして、MySQLが実行されていることを確認すると役立つ場合があります。
サーバーを再起動するだけで、"bam"修正されました。