PHP

SQLSTATE[HY000] [1045] Access denied for user ‘root’@’localhost’ (using password: NO)のエラーを解消する方法

こんにちは、シロウ(@shiro_life0)です。

最近はLaravelを使って、色々なWebアプリやプチ機能を作ったりしてスキルアップをしています。

そんな僕が最近出くわしたエラーがこちら。

SQLSTATE[HY000] [1045] Access denied for user ‘root’@’localhost’ (using password: NO)

訳してみると「ユーザー ‘root’ @ ‘localhost’のアクセスが拒否されました」とのこと。

ということで、この記事では上記のエラーの解消方法をお伝えしていきます。

【動作環境】

  • Mac OS
  • Laravel 6.18.36

  • PHP 7.4.5
  • MAMPを使用

【前提】.envファイルの環境変数を確認する

とりあえずrootのアクセスが拒否されたとのことなので、環境変数を設定する.envファイルを確認してみましょう。

.envファイルのデータベース名とかでミスってるとrootでアクセス出来ないはずなので、、、

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=データベース名
DB_USERNAME=root
DB_PASSWORD=root

僕の場合は上記のようにしていました。

ここはローカルの環境開発を何で作っているかによって変わると思いますので、各自調べてください。(MAMPの場合は上記の通り。)

これでデータベース名も特に間違っていないかったので、これでいけるはずなのに、、、なぜ??

【結論】SQLSTATE[HY000] [1045] Access denied for user ‘root’@’localhost’のエラーを解消する方法

実はとっても簡単でキャッシュをクリアすれば良いだけでした。

エラーの発生しているアプリのディレクトリまで移動して、ターミナル上で下記2のコマンドを実行してください。

//下記コマンドを実行
php artisan cache:clear

//▼実行結果
Cache cleared successfully.

//下記コマンドを実行
php artisan config:cache

//▼実行結果
Configuration cache cleared!
Configuration cached successfully!

これで無事キャッシュがクリアされました。

なので、おそらくこれで再度アクセスすればエラーが解消されているはずです。

これでも無理ならおそらく.envファイルの間違いだと思いますので、もう一度よく確認してみてください!

それでは良きLaravelライフを(*´ω`*)ノ