当前位置: 首页 > news >正文

MySQL快速搭建主从复制

一、基于位点的主从复制部署流程

  1. 确定主库Binlog是否开启
  2. 修改主从server_id
  3. 主库导出数据
  4. 从库导入数据
  5. 确定主库备份时的位点
  6. 在从库配置主库信息
  7. 查看复制状态并测试数据是否同步

二、准备阶段(主库和从库配置都需要修改)

1、确定主库Binlog是否开启

2、修改主从server_id(建议修改成IP的后两段)

select @@global.server_id;
set global server_id = 5435;

修改my.cnf配置文件

server-id = 5435

3、关闭GTID

修改my.cnf配置文件

gtid_mode=off
# enforce_gtid_consistency=on

三、基于位点的主从复制

1、创建用户(主库)

create user 'ccj2'@'%'identified by 'ccj';
GRANT ALL PRIVILEGES ON *.* TO 'ccj2'@'从库IP地址';

2、主库导出数据

mysqldump -u'ccj' -p'ccj1' --single-transaction --all-databases --master-data=2 --set-gtid-purged=off >/data/backup/alldb_bak.sql


scp /data/backup/alldb_bak.sql 101.201.246.223:/data/backup

3、从库导入数据

mysql -uroot -pccj </data/backup/alldb_bak.sql

二、基于位点的主从复制部署

1、在从库配置主库信息

查看备份文件中的位点信息

head -n 30 /data/backup/alldb_bak.sql

CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000038', MASTER_LOG_POS=726;

 查看从服务器(Slave)复制状态

show slave status

 配置从服务器(Slave)以连接到主服务器(Master)

change master to 
master_host='121.41.54.35',
master_user='ccj2',
master_password='密码',
master_log_file='mysql-bin.000038',
master_log_pos=726;

启动从服务器(Slave)的复制线程

start slave;

2、查看复制状态

show slave status;

1. 主从连接信息

这些参数描述了从服务器如何连接到主服务器。

参数作用
Master_Host主服务器的主机名或 IP 地址。
Master_User用于复制的主服务器用户名。
Master_Port主服务器的 MySQL 端口号(默认为 3306)。
Master_SSL_Allowed是否允许使用 SSL 连接到主服务器。
Master_SSL_CA_FileSSL 证书颁发机构文件路径(如果使用 SSL)。
Master_SSL_CA_PathSSL 证书颁发机构路径(如果使用 SSL)。
Master_SSL_Cert从服务器的 SSL 证书文件路径(如果使用 SSL)。
Master_SSL_Cipher使用的 SSL 加密套件。
Master_SSL_Key从服务器的 SSL 私钥文件路径(如果使用 SSL)。
Master_SSL_Verify_Server_Cert是否验证主服务器的 SSL 证书。

2. 复制线程状态

这些参数描述了从服务器的 I/O 线程和 SQL 线程的运行状态。

参数作用
Slave_IO_RunningI/O 线程是否运行。值为 Yes 表示正常运行,No 表示线程停止或出错。
Slave_SQL_RunningSQL 线程是否运行。值为 Yes 表示正常运行,No 表示线程停止或出错。
Last_IO_ErrorI/O 线程的最后一条错误信息。
Last_SQL_ErrorSQL 线程的最后一条错误信息。
Last_IO_ErrnoI/O 线程的最后一条错误代码。
Last_SQL_ErrnoSQL 线程的最后一条错误代码。

3. 主服务器日志信息

这些参数描述了从服务器正在复制的主服务器二进制日志文件和位置。

参数作用
Master_Log_File当前正在复制的主服务器二进制日志文件名。
Read_Master_Log_Pos当前正在复制的主服务器二进制日志文件的位置。
Relay_Master_Log_File中继日志中记录的主服务器二进制日志文件名。
Exec_Master_Log_Pos从服务器已执行的主服务器二进制日志的位置。

4. 从服务器中继日志信息

这些参数描述了从服务器的中继日志状态。

参数作用
Relay_Log_File当前正在使用的中继日志文件名。
Relay_Log_Pos当前中继日志的位置。
Relay_Log_Space中继日志占用的总空间大小(以字节为单位)。
Relay_Log_Purge是否允许自动清理中继日志。
Relay_Log_Space_Limit中继日志的最大空间限制(如果设置了 --relay-log-space-limit 参数)。

5. 复制延迟和性能

这些参数描述了从服务器与主服务器之间的同步延迟。

参数作用
Seconds_Behind_Master从服务器滞后主服务器的秒数。值为 0 表示同步,值越大表示延迟越高。
SQL_DelaySQL 线程延迟的时间(单位:秒),用于控制从服务器的复制速度。
SQL_Remaining_DelaySQL 线程剩余的延迟时间(单位:秒)。

6. 其他信息

这些参数提供了一些额外的复制状态信息。

参数作用
Slave_Running从服务器是否正在运行复制。值为 Yes 或 No
Skip_Counter跳过的事件计数器(用于跳过某些错误)。
Slave_SQL_Running_StateSQL 线程的当前状态描述(例如,正在执行哪个事件)。
Replicate_Do_DB配置的复制数据库白名单(如果设置了 replicate-do-db 参数)。
Replicate_Ignore_DB配置的复制数据库黑名单(如果设置了 replicate-ignore-db 参数)。
Replicate_Do_Table配置的复制表白名单(如果设置了 replicate-do-table 参数)。
Replicate_Ignore_Table配置的复制表黑名单(如果设置了 replicate-ignore-table 参数)。

7. 诊断和调试

这些参数用于诊断复制问题。

参数作用
Auto_Position是否启用基于 GTID 的自动定位复制。值为 1 表示启用,0 表示未启用。
Gtid_Mode是否启用了 GTID 复制模式。
Executed_Gtid_Set已执行的 GTID 集合(如果启用了 GTID 复制)。
Retrieved_Gtid_Set已检索的 GTID 集合(如果启用了 GTID 复制)。
Replicate_Ignore_Server_Ids配置的忽略的服务器 ID 列表(用于避免循环复制)。

相关文章:

  • springboot gradle 多项目创建
  • 《鸢尾花数学大系:从加减乘除到机器学习》开源资源
  • 【Mybatis】如何简单使用mybatis-plus,以及MybatisGenerator自动生成或者实现SQL语句
  • 【二.提示词工程与实战应用篇】【3.Prompt调优:让AI更懂你的需求】
  • 布置云服务器mysql注意事项:Your password does not satisfy the current policy requirements
  • DeepSeek集成到VScode工具,让编程更高效
  • 神经网络 - 激活函数(Swish函数、GELU函数)
  • 【C语言初阶】操作符_作业详解的一些疑问
  • 浏览器自定义区域截图 js-vue
  • Leetcode 189: 轮转数组
  • 【SRC实战】小游戏漏洞强制挑战
  • 计算机基础面试(数据库)
  • 零信任沙箱:为网络安全筑牢“隔离墙”
  • 【前端基础】Day 8 H5C3提高
  • 基于 Elasticsearch 和 Milvus 的 RAG 运维知识库的架构设计和部署落地实现指南
  • 【练习】【贪心】力扣435. 无重叠区间
  • TEE可信执行环境的安全业务保护方案
  • 前端水印实现方式
  • Windows 图形显示驱动开发-WDDM 3.2-脏位跟踪
  • 在剪映中给英文学习视频添加中文字幕
  • 福田网站建设龙岗网站建设罗湖网站建设罗湖网站建设/新闻软文自助发布平台
  • 网站如何推广营销/竞价排名推广
  • 怎么做网站效果图/网页开发
  • 网站开发如何记账/seo sem推广
  • 网站建设百强企业/网络推广都有哪些平台
  • 重庆网站推广报价/电商营销策划方案