LoginSignup
16
12

More than 3 years have passed since last update.

SQLSTATE[HY000] [1045] Access denied for userの解消

Last updated at Posted at 2019-11-23

はじめに

laravelの環境を5.6系から6.0系へバージョンアップした途端、
DBにユーザとパスワード、権限を正しく設定しているにもかかわらず、
phpからphp artisan migrateなどを行っても、下記のエラーでmysqlに接続できない人向けの記事です。

動作環境

-laravel 5.6 → 6.0.4へバージョンアップ
-PHP 7.3.12

エラーコード

In Connection.php line 665:

  SQLSTATE[HY000] [1045] Access denied for user 'host名'@'ip' (using password: YES) 

In PDOConnection.php line 31:

  SQLSTATE[HY000] [1045] Access denied for user 'host名'@'ip' (using password: YES) 


In PDOConnection.php line 27:

  SQLSTATE[HY000] [1045] Access denied for user 'host名'@'ip' (using password: YES) 

解決方法

下記2通りのどちらかの方法により、解決可能です。
1.DBのユーザパスワードに"#"が含まれている可能性が高いので、#がないパスワードを新たに設定し直す。

2.ダブルクォーテーションでパスワードを囲む

.env
DB_CONNECTION=mysql
DB_HOST=ホスト名
DB_PORT=3306
DB_DATABASE=DB名
DB_USERNAME=DBユーザ名
DB_PASSWORD="hoge#"←ダブルクォーテーションで囲む。

解説

laravel5.8以降、.envファイル内の#は値として認識されないそうです。
そのため、もし.envファイルに記載したDBパスワードに#が含まれていると、値として認識されないせいでパスワードエラーとなり、アクセス出来なかったと考えられます。

参考記事
https://github.com/laravel/ideas/issues/1540

16
12
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
12