2026/4/16 23:57:02
网站建设
项目流程
做路牌的网站,青岛专用网站制作,wordpress微信没缩略图,做汽车价格的网站建设在真实生产环境中#xff0c;数据库绝不能只有一份。 哪怕你还没上 K8s#xff0c;也应该至少有#xff1a;1 主 1 从 数据安全 读写分离而 Docker Compose#xff0c;正是最快落地 MySQL 主从的利器。一、整体架构我们要搭建的是经典 MySQL 主从架构#xff1a;二、准…在真实生产环境中数据库绝不能只有一份。 哪怕你还没上 K8s也应该至少有1 主 1 从 数据安全 读写分离而 Docker Compose正是最快落地 MySQL 主从的利器。一、整体架构我们要搭建的是经典 MySQL 主从架构二、准备目录结构mysql-cluster/ ├── docker-compose.yml ├── master/ │ └── my.cnf └── slave/ └── my.cnf三、Master 配置master/my.cnf[mysqld] server-id1 log-binmysql-bin binlog-formatROW四、Slave 配置slave/my.cnf[mysqld] server-id2 relay-logmysql-relay-bin read-only1五、docker-compose.ymlversion: 3.8 services: mysql-master: image:mysql:8.0 container_name:mysql-master restart:always environment: MYSQL_ROOT_PASSWORD:root volumes: -./master/my.cnf:/etc/mysql/conf.d/my.cnf -master-data:/var/lib/mysql ports: -3306:3306 mysql-slave: image:mysql:8.0 container_name:mysql-slave restart:always environment: MYSQL_ROOT_PASSWORD:root volumes: -./slave/my.cnf:/etc/mysql/conf.d/my.cnf -slave-data:/var/lib/mysql ports: -3307:3306 depends_on: -mysql-master volumes: master-data: slave-data:六、一条命令启动docker compose up -d 查看 docker compose ps七、在 Master 上创建复制账号 docker exec -it mysql-master mysql -uroot -proot CREATE USER repl% IDENTIFIED BY repl123; GRANT REPLICATION SLAVE ON *.* TO repl%; FLUSH PRIVILEGES; 查看 binlog SHOW MASTER STATUS; 记住 File: mysql-bin.000001 Position: 1234 八、在 Slave 上配置同步docker exec -it mysql-slave mysql -uroot -proot CHANGE MASTER TO MASTER_HOSTmysql-master, MASTER_USERrepl, MASTER_PASSWORDrepl123, MASTER_LOG_FILEmysql-bin.000001, MASTER_LOG_POS1234; START SLAVE; 检查状态 SHOW SLAVE STATUS\G; 看到 Slave_IO_Running: Yes Slave_SQL_Running: Yes 说明主从同步成功 九、测试同步在 master CREATE DATABASE testdb; USE testdb; CREATE TABLE t1(id INT); INSERT INTO t1 VALUES(1); 在 slave SELECT * FROM testdb.t1; 能看到 1说明复制已生效。