介绍:如果使用的阿里云的mysql服务器的话,它会提供主从同步的服务;这里我讲的是在阿里云云服务器上自建的mysql数据库,主从配置。
一、主库创建一个只读的账号,用于从库同步数据
进入主库创建一个test用户密码test,只允许ip为127.0.0.1登录,ip为从库地址ip
CREATE USER 'test' @'127.0.0.1' IDENTIFIED BY 'test' ;
给用户赋值权限REPLICATION SLAVE
GRANT REPLICATION SLAVE ON *.* TO 'test' @'127.0.0.1' ;
刷新
flush privileges;
二、将从库服务器ip地址加入到主库服务器白名单中
三、查询主库server-id
show variables like '%server_id%' ;
四、编辑配置从库my.cnf文件,先停掉从库服务systemctl stop mysqld
#服务 ID,主从实例 server-id 需不同。
server-id = 主库server-id自增
log_bin = /var/log/mysql/mysql-bin.log
#保存binlog时间10,删除10天前的binlog
expire_logs_days = 10
max_binlog_size = 100M
#需要同步的数据库
replicate-do-db = test
#不需要同步的数据库
replicate-ignore-db = mysql
replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema
#GTID
gtid_mode=on
enforce_gtid_consistency=on
#设置 binlog 为 row
binlog_format=row
log-slave-updates=1
五、手动创建binlog存放地址
mkdir /var/log/mysql
chown mysql:mysql -R /var/log/mysql
六、启动服务
systemctl start mysqld
七、查看配置binlog结果
show variables like '%binlog_format%' ;
八、在主库停机禁止新数据进入的情况下,备份主库所有数据同步到从库上
九、同步数据完成之后设置从库同步
change master to master_host = '主库地址' , master_port = 主库端口, master_user = 'test(主库新建的只读账户)' , master_password= '密码' , master_auto_position = 1;
十、开启检查同步是否成功(从库上操作)
start slave; 开启同步
show slave status\G; 检查同步结果
如果返回一下结果表示同步成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes