一主多从
1.创建配置文件
- 基于docker配置
version: '3'services:db1:image: mysqlrestart: alwayshostname: db1environment:MYSQL_ROOT_PASSWORD: 123456command:--default-authentication-plugin=mysql_native_password--character-set-server=utf8mb4--collation-server=utf8mb4_general_ci--explicit_defaults_for_timestamp=true--lower_case_table_names=1--max_allowed_packet=128M# 表示启用binlog功能--log-bin=mysql-bin# 表示忽略备份mysql--binlog_ignore_db=mysql# 唯一的ID--server-id=1ports:- 3306:3306volumes:- ./data1:/var/lib/mysqldb2:image: mysqlrestart: alwayshostname: db2environment:MYSQL_ROOT_PASSWORD: 123456command:--default-authentication-plugin=mysql_native_password--character-set-server=utf8mb4--collation-server=utf8mb4_general_ci--explicit_defaults_for_timestamp=true--lower_case_table_names=1--max_allowed_packet=128M--log-bin=mysql-bin--binlog_ignore_db=mysql--server-id=2ports:- 3307:3306volumes:- ./data2:/var/lib/mysqldb3:image: mysqlrestart: alwayshostname: db3environment:MYSQL_ROOT_PASSWORD: 123456command:--default-authentication-plugin=mysql_native_password--character-set-server=utf8mb4--collation-server=utf8mb4_general_ci--explicit_defaults_for_timestamp=true--lower_case_table_names=1--max_allowed_packet=128M--log-bin=mysql-bin--binlog_ignore_db=mysql--server-id=3ports:- 3308:3306volumes:- ./data3:/var/lib/mysql
2.主节点执行
> CREATE USER 'slave1'@'%' IDENTIFIED WITH mysql_native_password BY '123456';> GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'%';> CREATE USER 'slave2'@'%' IDENTIFIED WITH mysql_native_password BY '123456';> GRANT REPLICATION SLAVE ON *.* TO 'slave2'@'%';> FLUSH PRIVILEGES;> SHOW MASTER STATUS;
3.从节点执行
> STOP REPLICA;> CHANGE MASTER TOMASTER_HOST='db1',MASTER_USER='slave1',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=0;> START REPLICA;> SHOW REPLICA STATUS;
更新时间:{docsify-updated}
