やりたいこと・前提条件
LaradockとDockerを使ってローカル開発をしています。
DBはPHPMyAdmin上からrootユーザで作成しました。
php artisan make:migration
コマンドにて作成したマイグレーションファイルを元に、テーブルを作成したいです。
その際に、新しく作成したMySQLのユーザを使用したいです。
解決したい内容
マイグレーションファイルを作成し、php artisan migrate
を実行しようとした際、下記エラーが起きます。
laradock@ba290d4aab8c:/var/www$ php artisan migrate In Connection.php line 664: SQLSTATE[HY000] [1045] Access denied for user 'default'@'172.19.0.4' (using password: YES) (SQL: select * from information_schema.tables where t able_schema = default and table_name = migrations) In Connector.php line 67: SQLSTATE[HY000] [1045] Access denied for user 'default'@'172.19.0.4' (using password: YES)
原因として考えていること
.envファイルで、MySQLのユーザはdefaultユーザではなく、新しく作成したユーザを指定しているはず。
ユーザやDBを設定するファイルおよび箇所の認識が間違っているのではないか。
関連すると考えられるもの
【.envファイル】
- プロジェクト配下の.env
DB_CONNECTION=mysql DB_HOST=localhost DB_PORT=3306 DB_DATABASE=XXXXdb DB_USERNAME=XXXX DB_PASSWORD=XXXXpassword
- laradockディレクトリ配下の.env
### MYSQL ################################################# MYSQL_VERSION=latest MYSQL_DATABASE=XXXXdb MYSQL_USER=XXXX MYSQL_PASSWORD=XXXXpassword MYSQL_PORT=3306 MYSQL_ROOT_PASSWORD=root MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d DB_HOST=mysql
【新しく作成したユーザの権限】
bashから確認した権限
mysql> select user, host from mysql.user; +------------------+-----------+ | user | host | +------------------+-----------+ | root | % | | default | localhost | | XXXX | localhost | | mysql.infoschema | localhost | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +------------------+-----------+
mysql> show grants for 'xxxx'@'localhost'; +-----------------------------------------------------------+ | Grants for XXXX@localhost | +-----------------------------------------------------------+ | GRANT USAGE ON *.* TO `XXXX`@`localhost` | | GRANT ALL PRIVILEGES ON `XXXXdb`.* TO `XXXX`@`localhost` | +-----------------------------------------------------------+
進展
進展かはわからないのですが、状況に少し変化がありました。
キャッシュのクリアを試しました。
laradock@ba290d4aab8c:/var/www$ php artisan cache:clear Cache cleared successfully. laradock@ba290d4aab8c:/var/www$ php artisan config:cache Configuration cache cleared! Configuration cached successfully!
その後、php artisan migrate
を実行すると下記のエラーになりました。
laradock@ba290d4aab8c:/var/www$ php artisan migrate In Connection.php line 664: SQLSTATE[HY000] [1045] Access denied for user 'xxxx'@'172.19.0.4' (using password: YES) (SQL: select * from information_schema.tables where tabl e_schema = xxxxDB and table_name = migrations) In Connector.php line 67: SQLSTATE[HY000] [1045] Access denied for user 'xxxx'@'172.19.0.4' (using password: YES)
キャッシュのクリア前はdefaultユーザとdefaultDBを使っているようなエラーだったものが、
今は、.envファイル内で設定したユーザになっています。
エラーの内容としては変わっていないようですが。
いろいろ調べたり試したりはしたのですが、解決できなかったため
教えていただけると幸いです。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。