mysql主从配置(2025)
- 软件开发
- 2025-09-03 07:45:02

一、配置主服务器 编辑主mysql配置文件my f(vim /etc/my f),在[mysqld]下添加 [mysqld] # 配置主ID,必须在所有参与主从复制的数据库保证唯一 server-id=1 # 打开二进制日志 log-bin=/var/lib/mysql/mysql-bin.log # 只允许同步ente_database数据库(可选配置),不配置同步所有 binlog-do-db=tciot-db # binlog 保留时间设置为 7 天 expire_logs_days=7 启动主数据库,并登陆mysql数据库 #docker进入mysql方法 docker exec -it mysql bash #登陆 mysql -u root -p123456 锁定主数据库中所有表,防止配置从数据库时,数据变动 mysql> flush tables with read lock; 查询主数据库状态 SHOW BINARY LOG STATUS;
显示结果
记住file,position,稍后要用到
二、配置从数据库ps:需要再启动一个从数据库
sudo docker run -d -p 3308:3306 \ --name mysql2 --privileged=true \ -v /opt/tciot/mysql2/data:/var/lib/mysql \ -v /opt/tciot/mysql2/conf:/etc/mysql/conf.d \ -e MYSQL_ROOT_PASSWORD=123456 \ registry -hangzhou.aliyuncs /wst-srv/mysql:8 编辑从mysql配置文件my f(vim /etc/my f),在[mysqld]下添加 从库-主从配置 # 唯一ID server-id=2 relay_log=/var/lib/mysql/mysql-relay-bin.log replicate-do-db=tciot-db expire_logs_days=7从主数据库拷贝需要同步的表数据,必须保证数据一致 使用Navicat 15 for MySQL连接2个数据库,把主数据库的数据同步到从数据库
执行同步SQL语句
#登陆 mysql -u root -p123456 #设置主库信息 CHANGE REPLICATION SOURCE TO SOURCE_HOST = '192.168.44.128', SOURCE_PORT = 3307, SOURCE_USER = 'root', SOURCE_PASSWORD = '123456', SOURCE_LOG_FILE = 'mysql-bin.000001', #主服务器通过(SHOW BINARY LOG STATUS;)查询出来结果中的File值; SOURCE_LOG_POS = 158; # 主服务器通过(SHOW BINARY LOG STATUS;)查询出来结果中的Position值; 开始同步 START REPLICA; 查看从数据库状态 SHOW REPLICA STATUS\G;显示结果
这2项显示Yes,表示配置成功
打开主数据库的表锁 mysql> UNLOCK TABLES; 三、异常情况短暂断网:从库会自动恢复,需关注延迟。
长时间断网:可能需手动重建复制或重新初始化从库。 其他方案docker启动的方式配置MySQL配置文件 查看docker启动可选配置
docker run -it --rm mysql:tag --verbose --help查看是否有server-id、log-bin、binlog-do-db、replicate-do-db等参数
主库
sudo docker run -d -p 3309:3306 \ --name mysql3 --privileged=true \ -v /opt/tciot/mysql3/data:/var/lib/mysql \ -v /opt/tciot/mysql2/conf:/etc/mysql/conf.d \ -e MYSQL_ROOT_PASSWORD=123456 \ registry -hangzhou.aliyuncs /wst-srv/mysql:8 --server-id=1 --log-bin=/var/lib/mysql/mysql-bin.log --binlog-do-db=tciot-db从库
sudo docker run -d -p 3308:3306 \ --name mysql2 --privileged=true \ -v /opt/tciot/mysql2/data:/var/lib/mysql \ -v /opt/tciot/mysql2/conf:/etc/mysql/conf.d \ -e MYSQL_ROOT_PASSWORD=123456 \ registry -hangzhou.aliyuncs /wst-srv/mysql:8 --server-id=2 --log-bin=/var/lib/mysql/mysql-relay-bin.log --replicate-do-db=tciot-db其他操作和前面一致
备注 binlog清理策略默认设置30天,如果需要可手动设置
[mysqld] expire_logs_days = 7如果希望从库的库名和主库不一致 从库的配置文件binlog-do-db改成和主库不一致的
replicate-do-db=tciot-di从库输入下面语句,将主库和从库映射起来
CHANGE REPLICATION FILTER REPLICATE_REWRITE_DB=((`tciot-db`, `tciot-di`));再开始同步
mysql主从配置(2025)由讯客互联软件开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“mysql主从配置(2025)”
下一篇
【十】Golang切片