From 8baa8ab5ed0f3f3ec45e1a3261165f7e561721d8 Mon Sep 17 00:00:00 2001 From: will-k Date: Thu, 24 Aug 2023 07:20:10 +0900 Subject: [PATCH 1/2] Eliminate `log_slave_updates` system variable, closes #410 - `log_slave_updates` modifies to which file binlog events is written. - The variable is not applicable to python-mysql-replication, because no file is written --- docker-compose-test.yml | 4 ++-- docker-compose.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docker-compose-test.yml b/docker-compose-test.yml index 38d95827..45b0de43 100644 --- a/docker-compose-test.yml +++ b/docker-compose-test.yml @@ -8,7 +8,7 @@ services: MYSQL_DATABASE: pymysqlreplication_test ports: - 3306:3306 - command: mysqld --log-bin=mysql-bin.log --server-id 1 --binlog-format=row --gtid_mode=on --enforce-gtid-consistency=on --log_slave_updates + command: mysqld --log-bin=mysql-bin.log --server-id 1 --binlog-format=row --gtid_mode=on --enforce-gtid-consistency=on restart: always networks: - default @@ -20,7 +20,7 @@ services: MYSQL_DATABASE: pymysqlreplication_test ports: - 3307:3307 - command: mysqld --log-bin=mysql-bin.log --server-id 1 --binlog-format=row --gtid_mode=on --enforce-gtid-consistency=on --log_slave_updates -P 3307 + command: mysqld --log-bin=mysql-bin.log --server-id 1 --binlog-format=row --gtid_mode=on --enforce-gtid-consistency=on -P 3307 pymysqlreplication: build: diff --git a/docker-compose.yml b/docker-compose.yml index 45b53c3d..5c74f7bc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,7 +6,7 @@ services: MYSQL_ALLOW_EMPTY_PASSWORD: true ports: - 3306:3306 - command: mysqld --log-bin=mysql-bin.log --server-id 1 --binlog-format=row --gtid_mode=on --enforce-gtid-consistency=on --log_slave_updates + command: mysqld --log-bin=mysql-bin.log --server-id 1 --binlog-format=row --gtid_mode=on --enforce-gtid-consistency=on percona-5.7-ctl: image: percona:5.7 @@ -14,7 +14,7 @@ services: MYSQL_ALLOW_EMPTY_PASSWORD: true ports: - 3307:3307 - command: mysqld --log-bin=mysql-bin.log --server-id 1 --binlog-format=row --gtid_mode=on --enforce-gtid-consistency=on --log_slave_updates -P 3307 + command: mysqld --log-bin=mysql-bin.log --server-id 1 --binlog-format=row --gtid_mode=on --enforce-gtid-consistency=on -P 3307 mariadb-10.6: image: mariadb:10.6 From 53e7c2de5094566ebfc0146bcd4f4c6bddf746fc Mon Sep 17 00:00:00 2001 From: will-k Date: Thu, 24 Aug 2023 08:04:14 +0900 Subject: [PATCH 2/2] Refactor docker-compose.yml to use extension and YAML anchors for improved readability and expandability Changes: - Updated version to 3.4 at which extension for docker compose was first introduced - Use extension to hold common fields and anchors to reference the extensions --- docker-compose-test.yml | 49 +++++++++++++++++++++++++++------------ docker-compose.yml | 51 ++++++++++++++++++++++------------------- 2 files changed, 61 insertions(+), 39 deletions(-) diff --git a/docker-compose-test.yml b/docker-compose-test.yml index 45b0de43..20d4efbf 100644 --- a/docker-compose-test.yml +++ b/docker-compose-test.yml @@ -1,26 +1,45 @@ -version: '3.2' +version: '3.4' + +x-mysql: &mysql + environment: + MYSQL_ALLOW_EMPTY_PASSWORD: true + command: > + mysqld + --log-bin=mysql-bin.log + --server-id 1 + --binlog-format=row + --gtid_mode=on + --enforce-gtid-consistency=on + --log_slave_updates + +x-mariadb: &mariadb + environment: + MARIADB_ALLOW_EMPTY_ROOT_PASSWORD: 1 + command: | + --server-id=1 + --default-authentication-plugin=mysql_native_password + --log-bin=master-bin + --binlog-format=row + --log-slave-updates=on + services: percona-5.7: - platform: linux/amd64 + <<: *mysql image: percona:5.7 - environment: - MYSQL_ALLOW_EMPTY_PASSWORD: true - MYSQL_DATABASE: pymysqlreplication_test ports: - - 3306:3306 - command: mysqld --log-bin=mysql-bin.log --server-id 1 --binlog-format=row --gtid_mode=on --enforce-gtid-consistency=on - restart: always - networks: - - default + - "3306:3306" percona-5.7-ctl: + <<: *mysql image: percona:5.7 - environment: - MYSQL_ALLOW_EMPTY_PASSWORD: true - MYSQL_DATABASE: pymysqlreplication_test ports: - - 3307:3307 - command: mysqld --log-bin=mysql-bin.log --server-id 1 --binlog-format=row --gtid_mode=on --enforce-gtid-consistency=on -P 3307 + - "3307:3306" + + mariadb-10.6: + <<: *mariadb + image: mariadb:10.6 + ports: + - "3308:3306" pymysqlreplication: build: diff --git a/docker-compose.yml b/docker-compose.yml index 5c74f7bc..a7c9c181 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,37 +1,40 @@ -version: '3.2' +version: '3.4' + +x-mysql: &mysql + environment: + MYSQL_ALLOW_EMPTY_PASSWORD: true + command: > + mysqld + --log-bin=mysql-bin.log + --server-id 1 + --binlog-format=row + --gtid_mode=on + --enforce-gtid-consistency=on + +x-mariadb: &mariadb + environment: + MARIADB_ALLOW_EMPTY_ROOT_PASSWORD: 1 + command: | + --log-bin=master-bin + --server-id=1 + --default-authentication-plugin=mysql_native_password + --binlog-format=row + services: percona-5.7: + <<: *mysql image: percona:5.7 - environment: - MYSQL_ALLOW_EMPTY_PASSWORD: true ports: - - 3306:3306 - command: mysqld --log-bin=mysql-bin.log --server-id 1 --binlog-format=row --gtid_mode=on --enforce-gtid-consistency=on + - "3306:3306" percona-5.7-ctl: + <<: *mysql image: percona:5.7 - environment: - MYSQL_ALLOW_EMPTY_PASSWORD: true ports: - - 3307:3307 - command: mysqld --log-bin=mysql-bin.log --server-id 1 --binlog-format=row --gtid_mode=on --enforce-gtid-consistency=on -P 3307 + - "3307:3306" mariadb-10.6: + <<: *mariadb image: mariadb:10.6 - environment: - MARIADB_ALLOW_EMPTY_ROOT_PASSWORD: 1 ports: - "3308:3306" - command: | - --server-id=1 - --default-authentication-plugin=mysql_native_password - --log-bin=master-bin - --binlog-format=row - --log-slave-updates=on - volumes: - - type: bind - source: ./.mariadb - target: /opt/key_file - - type: bind - source: ./.mariadb/my.cnf - target: /etc/mysql/my.cnf