1、主从备份
首先在两台mysql数据库开启binlog日志,同时加上server-id,server-id不能相同
vim /etc/mysql/mysql.conf.d/mysqld.cnf (ubuntu18下的mysql配置文件位置)
开启binlog日志,和server-id
添加:
log-bin=/var/log/mysql/mysql-bin.log
server-id=3
同理第二台mysql以同样方式开启,注意server-id号不能相同
这里以id=3为主服务器
进入主服务器的mysql中,在mysql中使用命令:show master status; 查看binlog日是否开启,并且在从服务器接受授权时需要该信息
在主服务器中为从服务器授权
grant replication slave on *.* to root@'IP' identified by '密码‘;
flush privileges; #刷新权限
注:on *.* 授权备份的数据库或者表
再从服务器中接受授权信息
change master to master_user='root',master_password='密码',master_host='IP',master_log_file='mysql-bin.000003',master_log_pos='4286';
#master_user 主机用户
#master_password 主机密码
#master_host 主机ip
#master_log_file binlog日志(master status信息中展示的File部分)
#master_log_pos 日志文件大小(master status中的Position信息)
在开启slave服务
start slave;
在查看slave状态是否正确
show slave status\G;
在主服务器中测试,创建一个数据库
create database qwe;
在从服务器使用 show databases;命令,查看是否同步
2、一主多从备份
该备份主从备份类似,都需要开启server-id和binlog日志
继续上面步骤,在主服务器中为新的从服务器授权,
grant replication slave on *.* to root@'IP' identified by '密码';
flush privileges;
在从服务器中接受授权
change master to master_user='root',master_password='密码',master_host='IP',master_log_file=' ',master_log_pos=' ';
注:此时master_log_file和master_log_pos可能发生改变,应在主服务器中重新查看master状态,show master status;
在开启slave状态
start slave;
同样在主服务器中创建新的数据库,检测两个从服务器是否能查询。
3、主主备份
在两个mysql数据库中同时开启主服务器权限,也同时接受对方服务器授权权限。即互相开启主从权限。
操作同主从备份一样,不同之处在从服务器向主服务器开启master权限,进行grant授权,同时在主服务器中接受从服务器授权,change master to。
在主服务器开启slave:
start slave;
主主备份搭建完成。
补充:
在主从备份后要将主从备份之前的数据同步,使用mysqldump工具将之前的数据从主服务器导出,在通过ftp等方式传输到从服务器中,将数据导入到从服务器的mysql中来实现数据同步。