关于MySQL主从复制的详细流程
关于MySQL主从复制的详细流程,可以分为以下几个主要步骤:
一、准备工作
-
确保环境:
- 准备至少两台服务器,一台作为主服务器(Master),另一台作为从服务器(Slave)。
- 确保两台服务器间的网络连接畅通。
- 安装相同版本的MySQL Server。
- 为主服务器和从服务器分别分配唯一的服务器ID。
-
安装MySQL:
- 在两台服务器上分别安装MySQL数据库,并确保MySQL服务正常启动。
二、配置主服务器(Master)
-
修改配置文件:
- 编辑MySQL的配置文件(通常是
/etc/my.cnf
或/etc/mysql/my.cnf
)。 - 确保以下参数被正确设置:
[mysqld] log-bin=mysql-bin # 开启二进制日志 server-id=1 # 设置主服务器的唯一ID binlog-do-db=name_of_db # 设置需要复制的数据库(可选) binlog-ignore-db=name_of_db # 设置不需要复制的数据库(可选)
- 重启MySQL服务以使更改生效。
- 编辑MySQL的配置文件(通常是
-
创建复制用户:
- 登录到MySQL服务器。
- 创建一个专用账户用于从服务器连接主服务器:
CREATE USER 'replication_user'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%'; FLUSH PRIVILEGES;
- 注意:出于安全考虑,最好将
%
替换为具体的从服务器IP地址。
-
查看主服务器状态:
- 执行以下SQL命令查看主服务器的二进制日志位置:
SHOW MASTER STATUS;
- 记录下返回的File和Position的值,稍后在从服务器上配置时需要用到。
- 执行以下SQL命令查看主服务器的二进制日志位置:
三、配置从服务器(Slave)
-
修改配置文件:
- 编辑MySQL的配置文件(同样是
/etc/my.cnf
或/etc/mysql/my.cnf
)。 - 确保以下参数被正确设置:
[mysqld] server-id=2 # 设置从服务器的唯一ID(与主服务器不同) relay-log=relay-bin # 开启中继日志 log-slave-updates=1 # 如果有多个从服务器,需要开启
- 重启MySQL服务以使更改生效。
- 编辑MySQL的配置文件(同样是
-
配置复制:
- 登录到MySQL服务器。
- 使用之前记录的File和Position值配置从服务器以连接到主服务器:
CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='replication_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='recorded_log_file_name', MASTER_LOG_POS=recorded_log_position;
- 启动从服务器上的复制线程:
START SLAVE;
-
检查复制状态:
- 执行以下SQL命令查看从服务器的复制状态:
SHOW SLAVE STATUS\G
- 确认
Slave_IO_Running
和Slave_SQL_Running
的状态都是Yes
,表示复制正在正常进行。
- 执行以下SQL命令查看从服务器的复制状态:
四、数据同步(可选)
如果主服务器和从服务器上的数据不一致,需要进行数据同步。这通常通过以下步骤实现:
-
在主服务器上锁定数据库:
- 执行
FLUSH TABLES WITH READ LOCK;
命令锁定数据库,以避免写入操作。
- 执行
-
导出主服务器数据:
- 使用
mysqldump
工具导出数据,并记录二进制日志的位置:mysqldump -u root -p --all-databases --master-data > dbdump.sql
- 使用
-
解锁主服务器数据库:
- 执行
UNLOCK TABLES;
命令解锁数据库。
- 执行
-
将导出的数据导入到从服务器:
- 将
dbdump.sql
文件传输到从服务器,并导入数据:mysql -u root -p < dbdump.sql
- 将
五、验证复制
- 在主服务器上执行一些写操作(如INSERT、UPDATE、DELETE)。
- 在从服务器上检查相应的数据是否已更新,以验证复制是否成功。
通过以上步骤,可以完成MySQL的主从复制配置。在实际应用中,还需要注意监控复制状态、处理可能的复制延迟
原文地址:https://blog.csdn.net/weixin_54546701/article/details/140535196
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!