环境:Master为阿里云,数据库版本5.7 Slave为腾讯云,数据库版本5.7
首先开放阿里云服务器的mysql授权策略
安全组-->快速添加
开放腾讯云防火墙mysql端口号
主库Master配置
1.使用命令进入阿里云主库mysql
mysql -uroot -pmysql
2.创建账号,最好重新创建一个新的账号来备份数据
在这里配置的是具有所有权限的user账号,也可以单独设置只允许查询的权限,注意mysql5.7可以授权和创建账号一次执行
grant all privileges on *.* to 'user'@'192.168.0.1' identified by 'mysql';
解释:*.* 表示所有数据权限,192.168.0.1是当前的举例IP实际操作时换成自己的从库安装mysql的服务器外网ip,mysql是当前的账号密码
3.输入查询账号命名
SELECT User, Host FROM mysql.user;
4.刷新系统权限表的配置
flush privileges;
5.进入服务器/etc目录,找到my.cnf文件写入以下配置
# 开启binlog
log-bin=mysql-bin
server-id=101
# 同步的数据库,不配置将会同步全部数据库
binlog-do-db=ruoyi-vue
# binlog日志保留的天数,清除超过10天的日志
expire-logs-days=10
6.重启mysql数据库
service mysql restart
7.再次进入mysql,输入以下命令
show master status\G
截图的信息记得保留,在配置从库时会用得上
8.查看防火墙是否开放,如果开放需要输入以下命令
#查看防火墙状态
systemctl status firewalld
#如果开放
sudo firewall-cmd --zone=public --permanent --add-service=mysql
#再次重启
sudo systemctl restart firewalld
9.用刚刚在主库创建的user账号,在腾讯云从库登录,验证账号是否创建成功且拥有数据库权限
mysql -u user -h192.168.0.1 -pmysql
从库Slave配置
1.主库配置同理进入服务器/etc目录,找到my.cnf文件写入以下配置
# 可以随便填写,不和其他mysql服务id重复就可以了
server-id=102
2.此时用从库数据的root账号进入mysql数据库
mysql -uroot -pmysql
3.输入以下命令
CHANGE MASTER TO MASTER_HOST='192.168.0.2',MASTER_USER='user',MASTER_PASSWORD='mysql',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=580,master_port=3306;
#备注:
#master_host:对应主服务器的IP地址,我这里用192.168.0.2来举例主库阿里云服务器的外网IP。
#master_port:对应主服务器的端口。
#master_log_file:对应show master status显示的File列:master-bin.000002。
#master_log_pos:对应show master status显示的Position列:580。
4.启动
#启动slave服务
start slave;
#停止slave服务
stop slave;
#重置slave服务,重置时必须先停止slave服务
reset slave;
5.输入命令查看是否配置成功
show slave status\G
6.可以在主库建表和添加数据,测试是否实现