在 MySQL 数据库中,主从复制是一种常见的数据库备份和扩展读负载的方法。本文将详细介绍如何设置 MySQL 的主从复制。
前提条件
在开始之前,请确保以下条件已经满足:
- 主数据库服务器(主服务器)和从数据库服务器(从服务器)都安装了 MySQL。
- 主服务器上有一个可复制的数据库。
- 主服务器和从服务器之间的网络连接正常。
设置步骤
配置主服务器
首先,在主服务器上配置 MySQL。修改
/etc/mysql/my.cnf
文件,添加以下配置:[mysqld] server-id = 1 binlog-format = ROW log-bin = /var/log/mysql/binlog
其中,
server-id
是主服务器的唯一标识符,binlog-format
指定二进制日志的格式,log-bin
指定二进制日志的存储路径。创建复制用户
在主服务器上创建一个用于复制的用户:
CREATE USER 'replication_user'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%'; FLUSH PRIVILEGES;
其中,
replication_user
是复制的用户名,password
是对应的密码。配置从服务器
在从服务器上配置 MySQL。修改
/etc/mysql/my.cnf
文件,添加以下配置:[mysqld] server-id = 2 log-bin = /var/log/mysql/binlog
其中,
server-id
是从服务器的唯一标识符。从服务器连接主服务器
在从服务器上执行以下命令,连接到主服务器:
CHANGE MASTER TO MASTER_HOST='主服务器IP地址', MASTER_USER='replication_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='主服务器上的二进制日志文件名', MASTER_LOG_POS=主服务器上的二进制日志位置;
其中,
主服务器IP地址
是主服务器的 IP 地址,replication_user
是复制的用户名,password
是对应的密码,主服务器上的二进制日志文件名
和主服务器上的二进制日志位置
可以通过以下命令获取:SHOW MASTER STATUS;
启动复制
在从服务器上执行以下命令,启动复制:
START SLAVE;
验证复制
在从服务器上执行以下命令,验证复制是否成功:
SHOW SLAVE STATUS \G
如果复制的
Slave_IO_Running
和Slave_SQL_Running
都是Yes
,则表示复制成功。
扩展阅读
如果您想了解更多关于 MySQL 主从复制的知识,可以参考以下链接:
祝您学习愉快!🎉