本文共 1515 字,大约阅读时间需要 5 分钟。
做MySQL主从复制是一个常见的高可用性和数据备份策略,以下是基于脚本的操作说明,适用于Slave节点的配置和管理。
在实际操作中,需要确保主服务器(Master)处于健康状态,且正在接受写操作。操作步骤如下:
锁定Master表
在Master节点上执行以下SQL语句,确保所有表都处于读锁状态:FLUSH TABLES WITH READ LOCK;
这一步目的是防止在数据导出过程中出现数据不一致的情况。
获取Master节点日志文件信息
使用以下命令获取Master节点的日志文件位置和日志偏移量:SHOW MASTER STATUS \G
通过解析输出结果,可以得到File
和Position
,用于Slave节点的配置。
停止Slave节点复制
在Slave节点上执行以下命令,停止当前的复制任务:STOP SLAVE;
导出Master节点数据
使用mysqldump工具将目标数据库的数据备份到本地文件:mysqldump -h-P -u -p --databases > _master.sql
替换<Master_Host>
、<Master_Port>
、<Username>
、<Password>
、<Database_Name>
为实际的参数。
删除并重新创建目标数据库
首先删除目标数据库(如果存在),然后创建新的数据库:DROP DATABASE IF EXISTS;CREATE DATABASE IF NOT EXISTS DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
导入Slave节点的数据
将从Master节点导出的SQL文件导入Slave节点,重置Slave的数据:mysql -u_master.sql
重新配置Slave节点
启用Slave节点的日志文件复制功能,并设置新的Master节点信息:CHANGE MASTER TO MASTER_HOST='', MASTER_USER='rep', MASTER_PASSWORD='password', MASTER_LOG_FILE=' ', MASTER_LOG_POS= ;
替换<Master_Host>
、<Master_Log_File>
和<Master_Position>
为从步骤2获取的实际值。
启动Slave节点复制
在Slave节点上执行以下命令,启动复制任务:START SLAVE;
验证复制状态
确认Slave节点的复制任务是否正常运行:SHOW SLAVE STATUS \G
检查Slave_IO_Running
和Slave_SQL_Running
两个状态是否都为YES
。
锁定Master表(可选)
如果需要确保数据一致性,可以在导出数据后再次执行读锁定操作:FLUSH TABLES WITH READ LOCK;
通过上述步骤,可以实现MySQL主从复制的配置和管理。为了提高效率,可以将上述步骤添加到crontab计划任务中,定期执行数据同步操作。
转载地址:http://nodfk.baihongyu.com/