MariaDB を docker で利用したら嵌った

MariaDB を Docker で利用する場合、以下のような docker-compose.yaml を書けば良いのだと思い込んでいた。

services: "3"
  mariadb:
    image: mariadb
    ports:
      - '3306:3306'
    volumes:
      - db-data:/var/lib/mysql
      - ./db/my.cnf:/etc/mysql/conf.d/my.cnf:ro
    environment:
      #MARIADB_ROOT_HOST: mariadb
      MARIADB_ROOT_PASSWORD: password
      TZ: Asia/Tokyo
volumes:
    db-data:
        driver: local
>mariadb -uroot -ppassword
ERROR 1045 (28000): Access denied for user 'root'@'127.0.0.1' (using password: NO)

しかし、この YAML を使うとどうしても root ユーザによる mariadb コマンドのアクセスができない。

理由はよく分からないが、ダミーで DB を作成したら動くようになった。

  mariadb:
    image: mariadb
    ports:
      - '3306:3306'
    volumes:
      - db-data:/var/lib/mysql
      - ./xchange:/xchange
      - ./db/my.cnf:/etc/mysql/conf.d/my.cnf:ro
    environment:
      #MARIADB_ROOT_HOST: mariadb
      MARIADB_ROOT_PASSWORD: password
      MARIADB_DATABASE: dummytbl
      MARIADB_USER: dummytbl
      MARIADB_PASSWORD: dummytbl
      TZ: Asia/Tokyo

volumes:
  db-data:
    driver: local

dummytbl ユーザで dummytbl インスタンスがアクセスできるのは分かるのだが、こうしておくと、root でもアクセス可能になる。動きが全く読めん。

投稿者について
みのしす

小さいときは科学者になろうとしたのに、その時にたまたま身に着けたプログラミングで未だに飯を食っているしがないおじさんです。(年齢的にはもうすぐおじいさん)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です