MySQL实现一主对多从配置详解
1. 环境准备
为了实现MySQL的一主对多从配置,我们需要准备以下环境:
主服务器(Master):安装MySQL服务,用于存储数据和同步数据到从服务器。
从服务器(Slave):安装MySQL服务,用于接收主服务器同步的数据。
2. 主服务器配置
2.1 修改配置文件
在主服务器上,编辑MySQL的配置文件my.cnf
,通常位于/etc/mysql/
目录下,在[mysqld]
部分添加以下内容:
serverid=1 logbin=mysqlbin binlogformat=mixed
这里,serverid
用于标识主服务器,logbin
指定二进制日志文件名,binlogformat
设置二进制日志格式为混合模式。
2.2 重启MySQL服务
保存配置文件后,重启MySQL服务以使配置生效,可以使用以下命令重启服务:
sudo service mysql restart
3. 从服务器配置
3.1 修改配置文件
在从服务器上,编辑MySQL的配置文件my.cnf
,通常位于/etc/mysql/
目录下,在[mysqld]
部分添加以下内容:
serverid=2 relaylog=relaybin
这里,serverid
用于标识从服务器,relaylog
指定中继日志文件名。
3.2 重启MySQL服务
保存配置文件后,重启MySQL服务以使配置生效,可以使用以下命令重启服务:
sudo service mysql restart
4. 主从复制配置
4.1 主服务器授权
在主服务器上,使用以下命令授权从服务器连接:
GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;
这里,将slave_user
替换为从服务器的用户名,password
替换为从服务器的密码。
4.2 获取主服务器信息
在主服务器上,使用以下命令获取主服务器的二进制日志文件名和位置:
SHOW MASTER STATUS;
记录下File
和Position
的值,稍后在从服务器上配置时需要使用。
4.3 从服务器配置
在从服务器上,使用以下命令配置主从复制:
CHANGE MASTER TO MASTER_HOST='master_host_ip', MASTER_USER='slave_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='file_name', MASTER_LOG_POS=position;
这里,将master_host_ip
替换为主服务器的IP地址,slave_user
替换为从服务器的用户名,password
替换为从服务器的密码,file_name
替换为主服务器上的二进制日志文件名,position
替换为主服务器上的二进制日志位置。
4.4 启动从服务器复制
在从服务器上,使用以下命令启动从服务器复制:
START SLAVE;
4.5 查看从服务器状态
在从服务器上,使用以下命令查看从服务器复制状态:
SHOW SLAVE STATUSG;
如果Slave_IO_Running
和Slave_SQL_Running
的值都是Yes
,则表示主从复制已经成功配置。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/522180.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复