要配置MySQL流复制,您可以按照以下步骤进行操作:
- 确保所有要参与复制的MySQL实例都使用相同的版本并且已经安装和配置正确。
- 在主数据库上,打开MySQL服务器配置文件(通常是
my.cnf
或my.ini
),向文件中添加以下配置:
[mysqld]
log-bin=mysql-bin
server-id=1
其中,log-bin
指定二进制日志文件的名称,server-id
指定服务器的唯一标识,可以使用服务器IP。
- 重启主服务,使配置文件中的更改生效。
systemctl restart mysqld.service
- 在主服务器上创建一个用于复制的专用账户,并授予该账户复制权限。例如,可以使用以下命令创建账户,并为其授予复制权限:
CREATE USER 'replication_user'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';
FLUSH PRIVILEGES;
请将replication_user
替换为您希望使用的用户名,password
替换为您希望使用的密码。
- 在主服务器上执行以下命令来获取二进制日志的当前位置:
SHOW MASTER STATUS;
将结果记录下来,以备后续使用。
- 在从服务器上打开MySQL服务器配置文件,并添加以下配置:
[mysqld]
server-id=2
其中,server-id
指定服务器的唯一标识,与主服务器的标识不同。
- 重启从服务,使配置文件中的更改生效。
systemctl restart mysqld.service
- 在从服务器上执行以下命令来配置从服务器连接到主服务器:
CHANGE MASTER TO
MASTER_HOST='master_ip_address',
MASTER_USER='replication_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='logfile_from_MASTER_STATUS',
MASTER_LOG_POS=log_position_from_MASTER_STATUS;
#延迟流复制 单位秒
CHANGE MASTER TO MASTER_DELAY=10800;
请将master_ip_address
替换为主服务器的IP地址,replication_user
替换为在步骤4中创建的账户名,password
替换为该账户的密码,logfile_from_MASTER_STATUS
和log_position_from_MASTER_STATUS
替换为在步骤5中获取的主服务器二进制日志的位置。
- 启动从服务器上的复制进程:
START SLAVE;
- 检查从服务器的状态,确保复制正在运行:
# 表格格式查看
SHOW SLAVE STATUS;
# json格式查看
SHOW SLAVE STATUS\G
在输出中的Slave_IO_Running
和Slave_SQL_Running
列应该显示Yes
,表示复制正在运行。
以上就是配置MySQL流复制的基本步骤。
请注意,每次更改主服务器的配置或从服务器的my.cnf文件后,都需要重启服务systemctl restart mysqld.service
才能生效。
网友评论