LoginSignup
0
0

More than 3 years have passed since last update.

homesteadのmigrationでAccess deniedが出たときの対処法

Posted at

php artisan migrateでコケた

$ php artisan migrate

   Illuminate\Database\QueryException  : SQLSTATE[HY000] [1045] Access denied for user 'homestead'@'localhost' (using password: NO) (SQL: select * from information_schema.tables where table_schema = homestead and table_name = migrations and table_type = 'BASE TABLE')

とのこと。
(using password: YES)でコケてる記事はいくつか出てくるけど、(using password: NO)はあまりヒットしなかったのであとの人のために書きます。

先に結論

mysql> SET PASSWORD = 'secret'

して、.envをDB_PASSWORD=secretに変更したのち
php artisan cache:clearしてphp artisan migrate
で解決。

まずは確認

vagrant sshした状態でmysqlコマンドを打ったらログインできるのが前提。
これができない場合はまずは手動でmysqlログインできる状態まで頑張って持っていきましょう。
mysqlに入れたら
select USER();でなんというユーザ名で入れているのかを確認。(おそらく`homestead@localhost'とか出てくるはず。その場合ユーザ名はhomestead)

次に接続するDBの確認。mysql内でshow databases;してhomesteadがあることを確認しましょう。

mysql> show databases;
+---------------------+
| Database            |
+---------------------+
| information_schema  |
| homestead           |
| #mysql50#lost+found |
| mysql               |
| performance_schema  |
| sys                 |
+---------------------+
6 rows in set (0.00 sec)

ここまで確認できたら開発中のLaravelプロジェクト内の.envファイルに

DB_DATABASE=homestead
DB_USERNAME=homestead

と定義されているかを確認しましょう。

パスワードを使用するように変更

なんだかパスワードが設定されてないのが原因らしいので、.envファイルで

DB_PASSWORD=

となっているところを

DB_PASSWORD=secret

などにして、(必ずしもsecretである必要はないけども)
mysql内で

mysql> SET PASSWORD = 'secret'

すれば行けるハズ。

0
0
0

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
0
0