UbuntuのVMで、私はずっと
SQLSTATE[HY000] [1045] Access denied for user 'username'@'localhost' (using password: YES)」と表示されます。
.envファイルでデータベースをこのように設定しました。
DB_HOST=45.55.88.57
DB_DATABASE=b-prod
DB_USERNAME=root
DB_PASSWORD=*********
UNIX_SOCKET=/var/run/mysqld/mysqld.sock
完全に動作しています。
しかし、私が使用するとき
DB_HOST=45.55.88.57
DB_DATABASE=b-prod
DB_USERNAME=b <----------------------------------------------
DB_PASSWORD=*********
UNIX_SOCKET=/var/run/mysqld/mysqld.sock
うまくいきませんでした。
他に何か対策はありますか?
パスワードが間違っているような気がするのですが。
データベースのパスワードをテストするにはどうしたらいいですか?db_password=***** ?
これは私が持っているすべてのユーザーです
mysql> SELECT User,Host FROM mysql.user;
+------------------+-------------+
| User | Host |
+------------------+-------------+
| root | % |
| root | 127.0.0.1 |
| root | 45.55.88.57 |
| root | ::1 |
| root | b |
| b | localhost |
| debian-sys-maint | localhost |
| root | localhost |
+------------------+-------------+
8 rows in set (0.00 sec)
.envを変更すると、キャッシュをクリアするか、サーバを再起動しないと設定が更新されないことがあります。
エラーメッセージは以下の通りです。
SQLSTATE[HY000] [1045] Access denied for user 'forge'@'localhost' (using password: YES)
データベースは "cached" .env 構成から情報を取得しようとしています、あなたは試してみるべきです。
php artisan config:clear` を実行してください。
解決しない場合は、サーバーを再起動してください。
configdatabase.php
に行ってください。そして、あなた自身のクレデンシャルを設定します。
'mysql' => [
'host' => '45.55.88.77',
'database' => 'prod',
'username' => 'forge',
'password' => '*********',
],
laravelの問題ではなく、データベースの問題だと思います。 ``bash mysql> SELECT User,Host FROM mysql.user; +------------------+-------------+ | ユーザー|ホスト +------------------+-------------+ | ルート|%|。 | ルート|127.0.0.1|...............。 | ルート | 45.55.88.57 | ルート| ::1 | ルート | b | b | localhost | <-- ローカルではなく、リモートでアクセスしたいので、%でなければなりません。 | debian-sys-maint | ローカルホスト | root | localhost | です。 +------------------+-------------+ セットで8行 (0.00秒)
これが役立つといいのですが。