Linux系统mysql数据库定时自动备份详细教程

发布时间:2024年01月17日

在Linux系统中,可以使用crontab来设置MySQL数据库的定时备份。

1. 创建backup.sh脚本文件,下面是一个示例的备份脚本:

   #!/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

2.打开终端并输入crontab -e进入cron配置界面。按i键进入编辑模式,在最后一行添加以下内容:

00 01 * * * /root/build/backup.sh >> /data/backups/logs/mysqldump.log 2>&1

这里的意思是每天凌晨1点运行备份脚本,并将结果记录到 /data/backups/logs/mysqldump.log文件中。根据自己的情况修改路径和时间。
完成后按Esc键退出编辑模式,再输入:wq保存并退出。
现在,MySQL数据库就会被定时备份了。

3.执行命令报错解决方案:

3.1 mysqldump: 未找到命令

[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

3.2 配置mysql环境变量

在Linux系统中,我们可以通过以下命令来将mysql添加到系统的PATH路径下:

echo 'export PATH="$PATH:/usr/local/mysql/bin"' >> ~/.bash_profile

之后我们可以通过source命令来使配置文件生效:

source ~/.bash_profile
文章来源:https://blog.csdn.net/SYQ20122012/article/details/135619742
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。