MySQL主从同步配置

简介: MySQL主从同步配置

配置主库



打开编辑MySQL配置文件:vi /etc/my.cnf,一般server-id用服务器ip的最后一部分,eg: 192.168.0.89,取89作为server-id


server-id=89
log-bin=db89-bin
binlog-do_db=rep_db


1. 新建用户,专门用以同步


grant replication slave on *.* to rep@'从库IP' identified by '123456';
FLUSH PRIVILEGES;
USE mysql;
SELECT user, host FROM user;


  1. 锁定库(不能写,只能读),如果主库里已经有数据(大概率实际场景都是这样😎),先备份


flush tables with read lock;
  • 备份,非必需
    mysqldump -hhost -uroot -ppassword dbname > /opt/rep_db.sql


  1. 锁定库后,查看主库状态


重点关注:File, Position,即快照,这在配置从库时需要使用


SHOW MASTER STATUS;


  1. 备份完成,且记下File, Position后,解锁


UNLOCK TABLES;


  1. 导入备份的数据到从库,以实现与主库一致


source rep_db.sql


配置从库


  1. 指定id


server-id=110


  1. 配置从库对应的主库信息


CHANGE MASTER TO
MASTER_HOST='IP',
MASTER_USER='rep',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='db89-bin.000002', #File
MASTER_LOG_POS=6456972; #Position


  1. 在从库端,查看从库状态


主要看:两个Yes,表明主从库同步成功


SHOW SLAVE STATUS \G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes


通过 START SLAVE;STOP SLAVE; 可分别启动与关闭从库的同步操作。


其他



  • 在主库端,查看主库下有哪些从库


SHOW SLAVE HOSTS;


  • 数据同步会产生日志,当数据库比较大时,主库端的日志会逐渐累积,很容易导致磁盘爆炸,设置自动清理binlog日志,这里配置同步日志保存5天。


show binary logs;
show variables like '%log%';
set global expire_logs_days = 5;


  • 当不想同步某些表时,可配置忽略指定表


replicate-wild-ignore-table=dbname.tablename


  • 当同步出错时,可配置跳过错误


比如主键冲突错误,可以在从库配置文件中配置跳过1062号错误:


Last_Error: Could not execute Write_rows event on table a.b; Duplicate entry 'aa56233933e548b98bc63449861a0d26' for key 'PRIMARY', Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY; the event's master log db89-bin.000007, end_log_pos 822402286


slave_skip_errors = 1062 # 若忽略多个错误,中间用逗号隔开,忽略所有用all

还可以配置跳过错误的个数:set GLOBAL SQL_SLAVE_SKIP_COUNTER=n;  # n为正整数,有几个错误,就跳过几个


  • 建议建立专门的只读用户

为防止从库被意外修改,建议单独为从库专门的只读用户。

grant select on dbname.* to reader@'%' IDENTIFIED BY 'password';
flush privileges;



相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
关系型数据库 MySQL Java
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
|
关系型数据库 MySQL Shell
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。
|
10月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
978 6
|
11月前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
1210 7
|
11月前
|
SQL 监控 关系型数据库
查寻MySQL或SQL Server的连接数,并配置超时时间和最大连接量
以上步骤提供了直观、实用且易于理解且执行的指导方针来监管和优化数据库服务器配置。务必记得,在做任何重要变更前备份相关配置文件,并确保理解每个参数对系统性能可能产生影响后再做出调节。
950 11
|
Ubuntu 关系型数据库 MySQL
在Ubuntu 22.04上配置和安装MySQL
以上就是在Ubuntu 22.04上配置和安装MySQL的步骤。这个过程可能看起来有点复杂,但只要按照步骤一步步来,你会发现其实并不难。记住,任何时候都不要急于求成,耐心是解决问题的关键。
1651 31
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
786 11
|
关系型数据库 MySQL Linux
CentOS 7系统下详细安装MySQL 5.7的步骤:包括密码配置、字符集配置、远程连接配置
以上就是在CentOS 7系统下安装MySQL 5.7的详细步骤。希望这个指南能帮助你顺利完成安装。
3496 26
|
SQL 关系型数据库 MySQL
seatunnel配置mysql2hive
本文介绍了SeaTunnel的安装与使用教程,涵盖从安装、配置到数据同步的全过程。主要内容包括: 1. **SeaTunnel安装**:详细描述了下载、解压及配置连接器等步骤。 2. **模拟数据到Hive (fake2hive)**:通过编辑测试脚本,将模拟数据写入Hive表。 3. **MySQL到控制台 (mysql2console)**:创建配置文件并执行命令,将MySQL数据输出到控制台。 4. **MySQL到Hive (mysql2hive)**:创建Hive表,配置并启动同步任务,支持单表和多表同步。
|
存储 Oracle 关系型数据库
MySQL 8.4 配置SSL组复制(八个步骤)
MySQL 8.4 配置SSL组复制(八个步骤)
1064 0

推荐镜像

更多