0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

mysql_native_passwordに変更したのにERROR 1045 (28000): Access denied が発生する

Last updated at Posted at 2024-08-09

何が起きた

MySQL8.0のイメージを起動したDockerコンテナに外部(docker-composeの別のコンテナ)からアクセスすると、ERROR 1045 (28000): Plugin caching_sha2_password could not be loaded とエラーが発生するので、mysql_native_password に認証方法を変更しました。すると、GRANTしているにもかかわらず、ERROR 1045 (28000): Access denied が発生します。

対処方法

mysql_native_password に変更した後に改めてパスワードを修正する。

ALTER USER 'develop'@'%' IDENTIFIED WITH mysql_native_password BY 'password'
ALTER USER 'develop'@'%' identified by 'develop';

詳しい経緯

  1. docker-composeで以下のように設定しました
  db:
    image: mysql:8.0
    container_name: develop_db
    command: mysqld --character-set-server=utf8mb4 --sql-mode=""
    volumes:
      - mysql-volume:/var/lib/mysql:delegated
    environment:
      TZ: Asia/Tokyo
      MYSQL_ROOT_HOST: '%'
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: calcium
      MYSQL_USER: develop
      MYSQL_PASSWORD: develop
    tty: true
  1. 別のコンテナからmysql cliでアクセスするとERROR 1045 (28000): Plugin caching_sha2_password could not be loaded が発生
  2. 以下のSQLで「mysql_native_password」に変更
ALTER USER 'develop'@'%' IDENTIFIED WITH mysql_native_password BY 
'password'
  1. 別のコンテナからmysql cliでアクセスするとERROR 1045 (28000): Access denied が発生する
  2. GRANT分で権限を付与
GRANT ALL PRIVILEGES ON `calcium_test`.* TO 'develop'@'%';
FLUSH PRIVILEGES;
  1. ここまでやってもAccess deniedが消えなかった。けど、パスワードを再設定したらいけました。

たったこれだけで4時間溶かしました。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?