当前位置: 首页 > 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.sqlscp /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 列表(用于避免循环复制)。

http://www.mrgr.cn/news/93005.html

相关文章:

  • 【C++指南】一文总结C++类和对象【中】
  • Nginx1.19.2不适配OPENSSL3.0问题
  • NL2SQL-基于Dify+阿里通义千问大模型,实现自然语音自动生产SQL语句
  • 小白向:如何使用dify官方市场“ECharts图表生成”工具插件——dify入门案例
  • 【动手学强化学习】番外2-多智能体强化学习算法框架之“MARLlib”学习
  • PPT 小黑第38套
  • Spring(二)容器
  • Unity中动态切换光照贴图LightProbe的方法
  • 【Linux实践系列】:用c语言实现一个shell外壳程序
  • 【C语言】联合体 `union` 的妙用
  • Markdown HTML 图像语法
  • 从新加坡《Companion Guide on Securing AI Systems 》看可信AI全生命周期防护框架构建
  • WPF高级 | WPF 应用程序部署与发布:确保顺利交付到用户手中
  • I2C驱动(十二) -- 主控芯片的i2c_adapter驱动分析
  • 深度学习架构Seq2Seq-添加并理解注意力机制(一)
  • 【AI深度学习基础】Pandas完全指南入门篇:数据处理的瑞士军刀 (含完整代码)
  • MAC 本地搭建部署 dify(含 github访问超时+Docker镜像源拉取超时解决方案)
  • 洛谷 P11830 省选联考2025 幸运数字 题解
  • mapbox基础,使用点类型geojson加载symbol符号图层,用于标注文字
  • 回归算法模型总结