先从主数据库 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 status\G;
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 status\G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
此处两项如果显示为 Yes,那么基本上是成功了,在主库建立一个表,然后查看从库是否也同步建立,即可测试是否成功。
P.S. 储存 sql 的时候必须包含数据,仅储存结构会导致两个库的数据不一致导致错误。