配置主服务器
配置文件 /etc/my.cnf 在[mysqld]下进行配置
log_bin=ON //启动二进制日志
log-bin = mysql-bin //启用二进制日志,用于记录主服务器的更新操作
server-id =1 // 用来表示mysql服务id,保证集成环境中的唯一性 , 范围 [1,2^32)
read-only=0 // 1表示只读, 0代表读写// 下面2个作为了解binlog-ignore-db=mysql //表示不需要同步的数据库
binlog-do-db=db01 //指定同步的数据库
配置完成后重启服务器
sudo systemctl restart mariadb; //mysql
sudo systemctl restart mysqld; //较新版本的mysql
登录mysql ,创建用户,并授予主从复制权限
create user 'filestore'@'%' identified by '[密码]' ;// 创建用户
grant replication slave on *.* to 'filestore'@'%' ;//给用户主从复制权限
show Grants for filestore@'%' ; //查看用户权限
show master status;
配置 从 服务器
配置文件 /etc/my.cnf 在[mysqld]下进行配置
$ sudo systemctl restart mariadb; //重启
连接主服务器
CHANGE MASTER TO
MASTER_HOST = ‘[主机ip]’,
MASTER_USER = ‘filestore’,
MASTER_PASSWORD = ‘[密码]’,
MASTER_LOG_FILE = ‘mysql-bin.000007’,
MASTER_LOG_POS = 154;
启动主从复制
start slave
查看状态
show slave status \G ;
可能出现的问题: slava_IO 不能成功连接 .
出现的原因:
1.MySQL端口(3306)没能正确打开
//尝试mysql -h 远程登录进行验证
sudo firewall-cmd --add-port=3306/tcp --permanent //开放防火墙3306 MySQL端口2.CHANGE MASTER TO 语句中,信息存在错误
CHANGE MASTER TO ··· // 配置相关信息
可能需要用到的其他命令
// 重新配置slave
stop slave; //停止slave
reset master;//重置master
CHANGE MASTER TO ··· // 配置相关信息
start slave//启动从服务器复制功能
show slave status\G //查看slave 状态信息//防火墙相关命令sudo firewall-cmd --state //检查防火墙状态
sudo systemctl start firewalld //开启防火墙
sudo systemctl enable firewalld //开机自启动sudo firewall-cmd --list-all //查看防火墙规则
sudo firewall-cmd --add-port=<port_number>/tcp --permanent //添加防火墙规则
sudo firewall-cmd --reload //重新加载防火墙配置sudo systemctl stop firewalld //关闭防火墙
sudo systemctl disable firewalld //关闭防火墙开机自启动