@peccul is peccu

(love peccu '(emacs lisp cat outdoor bicycle mac linux coffee))

DockerでMariaDBのRead-only Replicaを動かす

tl;dr

リードレプリカの command--read-only をつければよい

services:
  primary:
    image: mariadb
    command: --log-bin --log-basename=mariadb --rpl_semi_sync_master_enabled

  replica:
    image: mariadb
    command: --server-id=3 --log-basename=mariadb --rpl_semi_sync_slave_enabled --read-only
    environment:
      MARIADB_MASTER_HOST: primary

参考文献

  • 公式の Docker イメージ

https://hub.docker.com/_/mariadb

mariadb-docker/examples/compose-replication-semisync.yml at master · MariaDB/mariadb-docker · GitHub

Docker Official Image Frequently Asked Questions - MariaDB Knowledge Base

  • read-only を指定したらええんやで、というナレッジベース

Read-Only Replicas - MariaDB Knowledge Base

最初は my.cnf に書いて volume 指定で起動していたが、 書き込みできないことの動作確認で出たエラーが --read-only って書いてあったのでそのままコマンド指定にした。

特に他にmy.cnf に書く用事もなかったので。