千家信息网

MySQL5.7.18主从复制搭建一主一从的示例分析

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍了MySQL5.7.18主从复制搭建一主一从的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、复制原理主服务
千家信息网最后更新 2026年11月01日MySQL5.7.18主从复制搭建一主一从的示例分析

这篇文章主要介绍了MySQL5.7.18主从复制搭建一主一从的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

一、复制原理

主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。

MySQL使用3个线程来执行复制功能(其中1个在主服务器上,另两个在从服务器上。当发出START SLAVE时,从服务器创建一个I/O线程,以连接主服务器并让它发送记录在其二进制日志中的语句。主服务器创建一个线程将二进制日志中的内容发送到从服务器。

该线程为主服务器上的Binlog Dump线程。从服务器I/O线程读取主服务器Binlog Dump线程发送的内容并将该数据拷贝到从服务器数据目录中的本地文件中,即中继日志。第3个线程是SQL线程,是从服务器创建用于读取中继日志并执行日志中包含的更新。

二、服务器准备

操作系统版本:Red Hat Enterprise Linux Server release 6.7 (Santiago)

Master(主) ip:172.16.115.245 主机名称:mysql2 server_id:245

Slave(从) ip:172.16.115.247 主机名称:mysql3 server_id:247

主从服务器上都已安装MySQL5.7.18

三、主从复制实施细节

1.主服务器上为服务器设置一个连接账户并授予REPLICATION SLAVE权限。

GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'repl@20170509';

2.修改master配置文件my.cnf

server-id = 245log_bin = /data/mysqllog/3306/bin_log/binlog

这两个值必须设置,设置好之后,重启MySQL。

3.备份master上一份完整的数据

mysqldump -uroot -p'密码' --master-data=2 --single-transaction -R --triggers -A > /backup/all.sql

说明:

--master-data=2代表备份时刻记录master的Binlog位置和Position
--single-transaction意思是获取一致性快照
-R意思是备份存储过程和函数
--triggres的意思是备份触发器
-A代表备份所有的库

4.查看主库备份时的binlog名称和位置

SHOW MASTER STATUS;mysql> SHOW MASTER STATUS;+---------------+----------+--------------+------------------+-------------------+| File     | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+---------------+----------+--------------+------------------+-------------------+| binlog.000004 | 79394496 |       |         |          |+---------------+----------+--------------+------------------+-------------------+

或者到刚才备份的数据库文件中看:vi all.sql

5.修改slave库配置文件my.cnf

server-id = 247 (唯一,不能与主库一样,一般设为服务器IP后3位)log_bin = /data/mysql/logdir/3306/bin_log/binloginnodb_file_per_table = ONskip_name_resolve = ONrelay_log = /data/mysql/logdir/3306/relay_log/relay.logbinlog-format = rowlog-slave-updates = true

read_only=ON (只读模式)

设置完之后,重启MySQL。

6.在slave服务器上恢复master备份

mysql -u root -p'密码' < all.sql

7.停止从库,并配置主从参数,打开从库。

mysql> stop slave; #暂停从库mysql>CHANGE MASTER TO MASTER_HOST='172.16.115.245',MASTER_USER='repl', MASTER_PASSWORD='repl@20170509',MASTER_LOG_FILE='binlog.000004',MASTER_LOG_POS=154;mysql> start slave; #启动复制mysql> show slave status\G*************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 172.16.115.245Master_User: replMaster_Port: 3306Connect_Retry: 60Master_Log_File: binlog.000004Read_Master_Log_Pos: 104634190Relay_Log_File: relay.000003Relay_Log_Pos: 104632819Relay_Master_Log_File: binlog.000004Slave_IO_Running: YesSlave_SQL_Running: YesReplicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0Last_Error: Skip_Counter: 0Exec_Master_Log_Pos: 104634190Relay_Log_Space: 104634713Until_Condition: NoneUntil_Log_File: Until_Log_Pos: 0Master_SSL_Allowed: NoMaster_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0Master_SSL_Verify_Server_Cert: NoLast_IO_Errno: 0Last_IO_Error: Last_SQL_Errno: 0Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 245Master_UUID: 4f545573-3170-11e7-b903-000c29462d8cMaster_Info_File: /data/mysql/datadir/3306/data/master.infoSQL_Delay: 0SQL_Remaining_Delay: NULLSlave_SQL_Running_State: Slave has read all relay log; waiting for more updatesMaster_Retry_Count: 86400Master_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp: Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: Executed_Gtid_Set: Auto_Position: 0Replicate_Rewrite_DB: Channel_Name: Master_TLS_Version:

8.查看master、slave相关进程

master Binlog Dump线程:

mysql> SHOW PROCESSLIST \G*************************** 1. row ***************************Id: 13User: replHost: 172.16.115.247:44602db: NULLCommand: Binlog DumpTime: 76514State: Master has sent all binlog to slave; waiting for more updatesInfo: NULL

slave IO/SQL线程:

mysql> SHOW PROCESSLIST \G*************************** 1. row ***************************Id: 10User: system userHost: db: NULLCommand: ConnectTime: 81148State: Waiting for master to send eventInfo: NULL*************************** 2. row ***************************Id: 12User: system userHost: db: NULLCommand: ConnectTime: 5State: Reading event from the relay logInfo: NULL

9.至此,主从配置已经完成,可以到master服务器上创建数据库、表等操作,看slave数据库是否同步!

感谢你能够认真阅读完这篇文章,希望小编分享的"MySQL5.7.18主从复制搭建一主一从的示例分析"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

服务器 服务 线程 日志 备份 主从 数据 文件 更新 篇文章 配置 二进制 位置 名称 意思 数据库 示例 建一 分析 两个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技企业 云信互联网科技有限公司 融贸通互联网科技 互联网科技网站 互联网科技视频素材 富国互联网科技创新基金 隆华科技工业互联网 广州优美互联网科技 互联网科技博主是什么意思 互联网科技与管理 湖北码尼互联网科技有限公司电话 广州市恰铎互联网科技有限公司 爱医互联网络科技 美国互联网科技实力 电子商务与互联网科技的关系 皮皮虾互联网科技有限公司 产业互联网科技服务公司 银川新华互联网科技学校是国营吗 中国互联网公司的科技投入 北京品多多互联网科技有限公司 广州百单互联网科技有限公司 美国互联网科技巨头监管 互联网科技ppt模板 伴你行互联网科技有限公司 银川新华互联网科技学校联系电话 众安科技工业互联网合作 江苏苏星互联网科技有限公司 互联网科技手机排行榜 青岛易易互联网科技 颐高云石互联网科技
0