バックエンド

【Laravel】access deniedが表示されたときの対処法

『Laravel』でmysqlと接続するために『php artisan migrate』を実行時に、

『SQLSTATE[HY000] [1045] Access denied』と表示されることがあります。

アクセス拒否、という意味で、
環境の違いにより原因は様々あるようで、
もし表示された場合に確認したい箇所についてまとめることにしました。

phpMyAdmin

ユーザーを作る際に%ではなくlocalhostで設定。

.envファイル

database, username, passwordが間違っていないことを確認
ポート番号があっているか確認
(3306または8889)

DB_HOST=127.0.0.1をlocalhostへ変更
DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock を.envに追加

config/database.php

config/database.phpのunix_socketの部分をデフォルトのものではなく

‘unix_socket’ => ‘/Applications/MAMP/tmp/mysql/mysql.sock’,
に変更。

変更後にはキャッシュ削除

php artisan cache:clear
php artisan config:clear

その他 rootでアクセスできるか試す

ユーザーをrootにしてアクセスできるか試していただけますでしょうか。
laravelではなく mysql 単独でアクセスできるかも試していただけると助かります。

Access denied for user ‘root’@’localhost’ (using password: NO)でログインできない場合
Laravel データベース接続編

mysqlのバージョン次第でsudo 実行が必要かもです、こちらの記事も参考にしていただければと思います。

Laravelのマイグレーション時にAccess denied for user ‘root’@’localhost’になる

それでもダメなら再インストール

  • XAMPP/MAMPの再インストール
  • Laravelの再インストール

その他のケース

takashiさん:
自分の場合下記で解決できました。

PHPからMySQL 8.0へPDOで接続時に[could not find driver]になる場合の対処法

森野さん:
自分の場合ですが、下記の方法で解決できました。

MySQL5.7が起動できない。

mampを起動させた際、tmpフォルダの中にmysql.sock.lock.が自動で生成されていたようでして、これを削除したら無事にテーブルを作成出来ました。


関連記事一覧 (一部広告あり)

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


最近の記事

  1. オンライン教材

    【PHP/Laravel】初心者向けの動画をリリースしました【Udemy】
  2. アート

    サイエンス×アート のおすすめ本【子どもと一緒に読みたい本】
  3. オンライン教材

    【Laravel(PHP)】初心者向け アプリのつくり方 をリリースしました【t…
  4. オンライン教材

    【ExcelVBA】初心者向け講座をリリースしました。【Udemy】
  5. オンライン教材

    【JavaScript】初心者向けの動画をリリースしました【Udemy】
PAGE TOP