欢迎访问宙启技术站
智能推送

CentOS7开启MySQL8主从备份、每日定时全量备份的方法

发布时间:2023-05-15 02:03:26

1. 安装MySQL8

首先需要安装MySQL8,并配置主从服务器间互相访问和同步数据。安装过程可以参考其他教程或官方文档。

2. 配置主从同步

需要在主服务器上开启binlog功能,并配置主从服务器的关联。配置步骤如下:

(1)在主服务器上修改my.cnf文件,添加以下配置:

log-bin=mysql-bin #启用二进制日志
server-id=1 #主服务器ID,      标识

重启MySQL服务后,binlog功能即可开启。

(2)在主服务器上创建一个用于从服务器复制的账户,示例代码如下:

CREATE USER 'replication'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%';

注意,password需要替换成自己设置的密码。

(3)在从服务器上修改my.cnf文件,添加以下配置:

server-id=2 #从服务器ID,      标识
relay-log=relay-bin #中继日志,用于将主服务器的binlog同步到从服务器上

(4)在从服务器上执行以下命令,指定主服务器的IP及复制账户的用户名和密码:

CHANGE MASTER TO
MASTER_HOST='master_ip',  #主服务器的IP地址
MASTER_USER='replication', #用于从服务器复制的账户用户名
MASTER_PASSWORD='password', #与该账户关联的密码
MASTER_PORT=3306,  #主服务器的端口,默认是3306
MASTER_LOG_FILE='mysql-bin.000001', #主服务器binlog文件名,自动获取最新的文件
MASTER_LOG_POS=0;  #主服务器binlog文件的起始位置,设置为0

注意,mysql-bin.000001需要替换成主服务器上最新的binlog文件名。

(5)在主服务器上执行以下命令,确认主从服务器已经关联:

SHOW MASTER STATUS;

可以查看到如下输出:

+------------------+-----------+--------------+------------------+
| File             | Position  | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+-----------+--------------+------------------+
| mysql-bin.000001 | 120       |              |                  |
+------------------+-----------+--------------+------------------+
1 row in set (0.00 sec)

(6)在从服务器上执行以下命令,开始同步主服务器的数据:

START SLAVE;

(7)检查从服务器的同步状态:

SHOW SLAVE STATUS \G;

可以查看到如下输出:

...
Slave_IO_State: Waiting for master to send event
...
Slave_IO_Running: Yes
...
Slave_SQL_Running: Yes
...

当Slave_IO_State为Waiting for master to send event,Slave_IO_Running和Slave_SQL_Running为Yes时,表示从服务器已经成功连接到主服务器并开始同步数据。

3. 配置定时全量备份

可以使用Linux系统的crontab命令,配置任务定时执行。例如,每天凌晨2点执行一次备份:

(1)创建备份命令的脚本文件,例如备份命令为:

mysqldump -u root -p123456 --all-databases > /data/backup/all-databases.sql

则脚本文件可以创建为backup.sh:

#!/bin/bash
mysqldump -u root -p123456 --all-databases > /data/backup/all-databases.sql

注意,要将备份文件保存到指定的目录下。将文件保存到/data/backup/目录下。

(2)修改脚本文件的权限:

chmod u+x backup.sh

(3)执行crontab -e命令,编辑用户的crontab配置文件:

0 2 * * * /data/backup/backup.sh

其中,0 2 * * *表示任务将在每天凌晨2点执行,“/data/backup/backup.sh”是备份任务的脚本名称和路径。保存文件后,就可以每天定时执行全量备份任务了。

4. 总结

本文介绍了在CentOS7上开启MySQL8主从备份和设置每天定时全量备份的方法。备份是数据安全的重要保障,通过配置数据库的备份和定时备份任务,我们可以保证数据的可靠性和安全性。