千家信息网

mysql主从复制的实现步骤是什么

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要介绍"mysql主从复制的实现步骤是什么",在日常操作中,相信很多人在mysql主从复制的实现步骤是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"mys
千家信息网最后更新 2026年11月04日mysql主从复制的实现步骤是什么

这篇文章主要介绍"mysql主从复制的实现步骤是什么",在日常操作中,相信很多人在mysql主从复制的实现步骤是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"mysql主从复制的实现步骤是什么"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

目录
  • mysql主从复制

  • mysql主从复制的方式

  • mysql主从复制的原理

  • mysql的主从配置的具体实现方式

    • 1、 Master配置

    • 2、 Slave配置

mysql主从复制

本来是在做sharding的,可是做好之后发现数据库的主从复制还没有做,所以在配置好了之后做了些记录:

mysql主从复制的方式

mysql主从复制有两种方式:基于日志(binlog)、基于GTID(全局事物标示符)本博文用的是基于日志(binlog)的复制。

mysql主从复制的原理

1、 Master将数据记录到二进制日志中,也就是mysql配置文件my.cnf的log-bin指定的文件,这些记录叫做二进制日志事件。
2、 Slave有两个线程,一个I/O线程,一个SQL线程。I/O线程请求Master,将得到的binlog日志写到relay log(中继日志) 文件中。
3、 SQL 线程,会读取relay log文件中的日志,并解析成具体操作,来实现主从的操作一致,而最终数据一致。

mysql的主从配置的具体实现方式

1、 Master配置

(1) 修改mysql的my.cnf配置文件,这里比较坑爹的是我用的mysql版本没有my.cnf 配置文件,连my-default.cnf都没有,一般来说my.cnf在/etc目录下, my-default.cnf在/usr/local/mysql/support-files中。最终我在网上复制了一份my.cnf文件放在了/etc中(朋友们可以自己去网上找,有很多的)。
(2) my.cnf中需要修改的配置主要有开启日志功能,设置server_id保证其唯一性(不能跟从库一样),过滤需备份的数据库。

bash-3.2# vim /etc/my.cnf# 设置server_id,不能重复,一般可以设置为主库的IPserver_id=81# 备份过滤:需要备份的数据库,输出binlogbinlog-do-db=demo_ds_master# 备份过滤:不需要备份的数据库,不输出binlog-ignore-db=mysql# 开启二进制日志,将主库数据记录到mysql-bin开头的日志文件中(可自定义)          log-bin=mysql-bin# 配置每个session的内存,在事物过程中用来存储二进制日志的缓存binlog_cache_size=1M# 主从复制的格式(mixed,statement,row 默认的是statement)binlog_format=mixed# 二进制日志自动删除/过期的天数,默认为0,不自动删除expire_logs_days=7# 用于跳过主从复制中遇到的所有错误或指定的错误类型,避免slave端的终端# 1062:主键冲突(具体的参数可以去网上查询)slave_skip_errors=1062

(3) 启动/重启Master数据库服务,登录数据库,创建数据同步用户,并授权

#授权这个机器可以备份主数据库的数据mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'root'@'192.168.31.60' identified by 'password';#然后刷新权限mysql> flush privileges;#查看配置的主库信息mysql> show master status;


(4) 主库数据备份,确保主从库的数据一致性

# 临时锁住表,设置只读权限mysql> flush tables with read lock;# 备份数据库bash-3.2# mysqldump -uroot -p --add-drop-table demo_ds_master_1 > /tmp/demo_ds_master_1.sql;# 解锁表mysql> unlock table;

2、 Slave配置

(1) 修改从数据库mysql的my.cnf配置文件,添加从数据库的中继日志配置

[root@develop etc]# vim my.cnf# 设置server_id,不能重复,这里设置的是从库的IPserver-id=60# 开启从数据库中继日志,将主数据库的binlog写到relay log中,中继日志以hehe-mysql-relay-bin开头(可自定义)relay_log=hehe-mysql-relay-bin# 设置从数据库为只读权限,防止主从数据不一致read_only=1

(2) 如果从库需要作为另一个库的主库的话,需要加上Master上的配置信息,并且加上log_slave_updates=1将Master的binlog记录到自己的binlog日志中。

(3) 重启从库数据库,同步主库数据

# 运行主数据库的备份数据库[root@develop etc]# mysql -uroot -p demo_ds_master_1 < /tmp/demo_ds_master_1.sql# 登录从数据库[root@develop etc]# mysql -uroot -p# 设置该从节点的主节点mysql> change master to master_host='192.168.31.80', master_user='root',master_password='password',master_port=3306,master_log_file='mysql-bin.000001',master_log_pos=154;# 开启主从同步mysql> start slave;# 查看主从同步状态mysql> show slave status\G;# 查看主从线程状态mysql> show processlist\G;


图片中显示如下,说明主从复制已经配置好了,下面主库插入数据就可以实现从库自动复制主库数据了。

  • Slave_IO_State: Waiting for master to send event

  • Slave_IO_Running: Yes

  • Slave_SQL_Running: Yes

到此,关于"mysql主从复制的实现步骤是什么"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

数据 主从 配置 数据库 日志 备份 文件 线程 二进制 方式 步骤 一致 中继 同步 学习 权限 事物 信息 原理 开头 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 咖啡 咖啡豆 新华互联网科技学校 关于新基建和互联网科技 互联网金融科技平台 碳银互联网科技有限公司 互联网科技美容 滨湖区互联网智能科技产品供应 团飞科技与伯堂互联网服务平台 中国航天科技大学国际工业互联网 杭州壁岐互联网科技有限公司 中国互联网公司排名锤子科技 长沙茂晟互联网科技有限公司 特约风豹互联网科技为什么扣费 南通创西澳互联网科技有限公司 云南省自由互联网科技有限公司 广州有谷有贝互联网科技有限公司 扫呗互联网科技有限公司 济南小医互联网科技有限公司招聘 第三届互联网大会安防黑科技 互联网下的科技发展 互联网科技与金融科技 互联网金融 金融科技 济南和联互联网科技有限公司 厦门比较好的科技互联网公司 河南住房之家互联网科技 互联网科技如何创业 新氧科技和美国互联网有关系吗 银川新华互联网科技学校是国营吗 上海旺乐尼互联网科技有限公司
0