先从主数据库dump数据到从库完成数据的备份
在主库中创建一个热备账号,并且授权replication slave权限:
grant replication slave on *.* to "slave"@"192.168.3.206" identified by "admin"
flush privileges;
修改主库的配置文件,并添加如下的配置。
sudo vim /etc/my.cnf
server-id=2 //此处的server id是唯一的,主从库不能一样
log-bin=bin-log //二进制日志的文件名
binlog-do-db=databasename //你要备份的数据库
binlog-ignore-db =mysql //不需要备份的数据库
重启mariaDB
systemctl restart mariadb
在主库中查看主从状态
show slave statusG;
File: bin-log.000003 //注意
Position: 10646 //此处File以及Position的数据会用于从库的配置
Binlog_Do_DB:databasename
Binlog_Ignore_DB:mysql
1 row in set (0.00 sec)
更改从库配置,添加以下
server-id=3//此处的server id是唯一的,主从库不能一样
log-bin=bin-log //二进制日志的文件名
replicate-do-db=databasename //你要备份的数据库
replicate-ignore-db=mysql,information_schema,performance_schema
重启mariadb
systemctl restart mariadb
登陆从库MariDB,先停止掉slave
stop slave;
更改热备配置
Change master to master_host="192.168.3.205",master_port=3306, master_user="backups",master_password="admin",master_log_file="bin-log.000003",master_log_pos=19879;
master_host="主库的IP地址"
master_port=数据库端口
master_user="你所创建的用于热备的账号"
master_password="热备账号的密码"
"master_log_file"和"master_log_pos"需要与主库show master statusG;显示的数据一致。
然后开启slave。
start slave;
查看一下状态
show slave statusG;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
此处两项如果显示为Yes,那么基本上是成功了,在主库建立一个表,然后查看从库是否也同步建立,即可测试是否成功。
P.S.储存sql的时候必须包含数据,仅储存结构会导致两个库的数据不一致导致错误。