LoginSignup
1
0

SQLSTATE[HY000] [1045] Access denied for user 'root'@'172.21.0.2' ...原因調査

Posted at

MySQLへの接続が拒否に関するエラー

appコンテナとdbコンテナの接続において、
php artisan migrateコマンドを実行したところ下記のエラーが出た。

root@a0aefa03324d:/app/laravel# php artisan migrate

   Illuminate\Database\QueryException 

  SQLSTATE[HY000] [1045] Access denied for user 'root'@'172.21.0.2' (using password: YES) (SQL: select * from information_schema.tables where table_schema = database and table_name = migrations and table_type = 'BASE TABLE')

access denied...どうやらmysqlへの接続が拒否されているようだ。
docker-compose.ymlファイルと.envファイルの環境変数を確認してみる。

docker-compose.yml
  db:
    build:
      context: .
      dockerfile: ./docker/db/Dockerfile
    ports:
      - 3306:3306
    environment:
      MYSQL_DATABASE: MYSQL_DATABASE
      MYSQL_USER: user
      MYSQL_PASSWORD: password 
      MYSQL_ROOT_PASSWORD: password 
      TZ: 'Asia/Tokyo'
    volumes:
      - mysql-volume:/var/lib/mysql
.env
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=database
DB_USERNAME=root
DB_PASSWORD=password

database名とユーザー名が異なっているのでここが原因そう。
.envファイルを下記に修正して再度php artisan migrateコマンドを実行してみる。

.env
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
// 修正
DB_DATABASE=MYSQL_DATABASE
// 修正
DB_USERNAME=user
DB_PASSWORD=password

php artisan migrateコマンド実行。

root@a0aefa03324d:/app/laravel# php artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table (45.90ms)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated:  2014_10_12_100000_create_password_resets_table (28.35ms)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated:  2019_08_19_000000_create_failed_jobs_table (16.78ms)
Migrating: 2019_12_14_000001_create_personal_access_tokens_table
Migrated:  2019_12_14_000001_create_personal_access_tokens_table (41.32ms)

うまくいきましたね。

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