Linux定时备份mysql数据库

发布于:2025-06-18 ⋅ 阅读:(19) ⋅ 点赞:(0)

1、提前准备数据

2、在此目录下新建mysql_backup.sh(vi即新建)

vi /usr/local/bin/mysql_backup.sh

DB_USER="root"
DB_PASS="123456"
DB_NAME="lee"

BACKUP_DIR="/usr/local/mysql_backup"
BACKUP_FILE="${BACKUP_DIR}/$(date +%Y%m%d).sql"
SOCKET_PATH="/var/lib/mysql/mysql.sock"

/usr/bin/mysqldump -u${DB_USER} -p${DB_PASS} --socket=${SOCKET_PATH} ${DB_NAME}>"${BACKUP_FILE}"

3、对上述7行的解释

1、DB_USER="root" (你的数据库用户名)
2、DB_PASS="123456"(你的数据库密码)
3、DB_NAME="lee"(要备份的数据库)

4、BACKUP_DIR="/usr/local/mysql_backup"(备份后的sql文件,放在此文件下)

5、BACKUP_FILE="${BACKUP_DIR}/$(date +%Y%m%d).sql"   生成sql文件的名字

6、SOCKET_PATH="/var/lib/mysql/mysql.sock"

mysql.sock 是 MySQL 客户端与服务器之间通信的Unix 域套接字文件(Unix Domain Socket File),用于本地快速连接 MySQL 服务。它的作用类似于网络通信中的 TCP/IP 套接字,但仅适用于同一台机器上的进程间通信,因此效率更高、延迟更低。

关键点

  1. 仅用于本地连接
    • 当客户端通过 localhost 或 127.0.0.1 连接 MySQL 时,默认会优先使用 mysql.sock(而非 TCP/IP 端口 3306)。
    • 如果 mysql.sock 不存在或路径错误,客户端可能无法连接,即使 MySQL 服务正在运行。
  2. 与 TCP/IP 连接的区别
    • mysql.sock:仅限本地连接,无需网络协议开销,速度快。
    • TCP/IP:支持远程连接,需通过端口(如 3306)通信。

/var/lib/mysql/mysql.sock 默认安装

总结mysql.sock 的作用

                本地进程间通信的套接字文件,提高连接效率。

7、/usr/bin/mysqldump -u${DB_USER} -p${DB_PASS} --socket=${SOCKET_PATH} ${DB_NAME}>"${BACKUP_FILE}"

mysqldump 是 MySQL/MariaDB 自带的命令行备份工具,用于将数据库结构和数据导出为 SQL 格式的备份文件。

4、修改文件或目录的所有者和所属组。

 chown mysql:mysql /usr/local/mysql_backup

  • mysql:mysql:将所有者设为 mysql 用户,所属组设为 mysql 组。
  • /usr/local/mysql_backup:目标目录路径。

5、修改目录的访问权限。


chmod 700 /usr/local/mysql_backup

  • 作用:修改目录的访问权限。
  • 参数解释
    • 700:权限数字表示法,含义如下:
      • 7(所有者):读(4) + 写(2) + 执行(1)权限。
      • 0(所属组):无权限。
      • 0(其他用户):无权限。
    • /usr/local/mysql_backup:目标目录路径。
  • 使用场景
    • 限制备份目录仅允许所有者(mysql 用户)访问,增强安全性,防止其他用户查看或修改备份文件。
  • 权限说明
    • 700 是严格的权限设置,适用于敏感数据目录。


6、crontab -e

  • 作用:编辑当前用户的计划任务(Cron Job)。
  • 参数解释
    • -e:表示编辑(edit)模式。
  • 使用场景
    • 通常用于添加或修改定时任务,例如定期备份 MySQL 数据库。
    • 执行此命令后,会打开默认编辑器(如 vi 或 nano),用户可在其中添加类似以下的定时任务:
# 每天凌晨执行一次
#0 0 * * * /usr/local/bin/mysql_backup.sh
# 每分钟执行一次
* * * * * /usr/local/bin/mysql_backup.sh

    编辑

    7、一分钟后查看备份的数据(新增或者删除 都会呈现最终结果)


    网站公告

    今日签到

    点亮在社区的每一天
    去签到