在Linux系统中,可以使用crontab来设置MySQL数据库的定时备份。
#!/bin/bash
echo '**********************backup start ************************'
DATE=$(date +%Y%m%d%H%M) # 获取当前日期和时间作为备份名称
BACKUPDIR="/data/backups/database" # 指定备份存放目录
MYSQLUSER="root" # MySQL用户名
MYSQLPASSWORD="root@2023" # MySQL密码
DATABASES=("database_01" "database_02") # 需要备份的数据库列表
for DB in ${DATABASES[@]};
do
mysqldump -u $MYSQLUSER -p$MYSQLPASSWORD --socket=/home/data/mysql/mysql.sock --single-transaction --routines --triggers --events "$DB" > "$BACKUPDIR/$DB-$DATE.sql"
done
echo '**********************backup end ************************'
将上述内容保存到backup.sh文件中,然后通过chmod命令添加执行权限:
chmod +x backup.sh
00 01 * * * /root/build/backup.sh >> /data/backups/logs/mysqldump.log 2>&1
这里的意思是每天凌晨1点运行备份脚本,并将结果记录到 /data/backups/logs/mysqldump.log文件中。根据自己的情况修改路径和时间。
完成后按Esc键退出编辑模式,再输入:wq保存并退出。
现在,MySQL数据库就会被定时备份了。
[root@host-10-1-1-103 data]# whereis mysql
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/local/mysql /usr/share/mysql
[root@host-10-1-1-103 data]# ln -fs /usr/local/mysql/bin/mysqldump /usr/bin
在Linux系统中,我们可以通过以下命令来将mysql添加到系统的PATH路径下:
echo 'export PATH="$PATH:/usr/local/mysql/bin"' >> ~/.bash_profile
之后我们可以通过source命令来使配置文件生效:
source ~/.bash_profile