Mysql数据备份-定时自动备份dump备份命令

2023-11-17

  1. 登录数据库服务器并打开命令行工具(如Windows系统中的cmd.exe)或图形化管理工具(如phpMyAdmin、Navicat等)。

  2. 根据数据库类型,执行相应的备份命令。例如,MySQL数据库可以使用以下命令导出备份:

    mysqldump -u [用户名] -p [密码] [数据库名] > [备份文件名].sql

    其中,[用户名]和[密码]是指能够访问数据库的用户名和密码,[数据库名]是指要备份的数据库名称,[备份文件名]是指备份文件的名称。

  3. 执行备份命令后,系统会提示输入密码(如果有),输入密码并按回车键。

  4. 等待备份过程完成,备份文件会被保存在指定的文件路径下。

执行备份命令时,还可以设置一些选项,如:

  • 添加“--single-transaction”选项可以使用事务来确保备份的一致性。

  • 添加“--compress”选项可以压缩备份文件,以减少文件大小。

  • 添加“-t”选项可以仅备份指定的表。

备份完成后,可以将备份文件拷贝到远程服务器或备份介质上,以确保数据的安全性。恢复数据时,只需将备份文件导入数据库即可。

在Linux服务器上可以使用crontab工具来定时执行数据库dump备份。

  1. 打开终端并输入以下命令,以编辑定时任务列表:

    crontab -e
  2. 在弹出的编辑器中,输入以下备份命令并设置备份的执行时间。例如,以下命令将每天都在晚上11点执行备份:

    0 23 * * * mysqldump -u [用户名] -p [密码] [数据库名] > [备份文件名].sql

    其中,“0 23 * * *”表示在每天的23:00执行备份,[用户名]和[密码]是指能够访问数据库的用户名和密码,[数据库名]是指要备份的数据库名称,[备份文件名]是指备份文件的名称。

  3. 输入“Ctrl + X”并按“Y”确认保存,然后按“Enter”键退出编辑器。

此时,系统会在每天的23:00执行一次备份任务。如果需要更改备份时间或其他任务信息,可以再次执行“crontab -e”打开编辑器进行修改。

MySQL数据库的Shell脚本,可以放在Linux服务器上定时执行。该脚本将数据库备份文件保存在指定的目录下,并按照日期和时间进行命名:

#!/bin/bash
​
# 将当前日期和时间存储到变量中
timestamp=$(date +%Y-%m-%d_%H-%M-%S)
​
# 指定备份保存的目录,如果该目录不存在,则创建新目录
backup_dir="/var/backups/mysql"
if [ ! -d "$backup_dir" ]; then
  mkdir -p "$backup_dir"
fi
​
# 指定MySQL数据库的用户名、密码和备份数据库的名称
db_user="root"
db_password="password"
db_name="database_name"
​
# 指定备份文件的名称及路径
backup_file="$backup_dir/$db_name-$timestamp.sql"
​
# 使用mysqldump命令备份数据库,并输出到指定的文件中
mysqldump -u$db_user -p$db_password $db_name > $backup_file
​
# 进行备份文件的压缩
gzip $backup_file
​
# 输出备份完成信息
echo "MySQL backup completed: $backup_file.gz"

保存以上脚本为backup_mysql.sh,并使用以下命令添加执行权限:

chmod +x backup_mysql.sh

然后可以使用crontab将该脚本添加到定时任务列表中,例如:

0 1 * * * /path/to/backup_mysql.sh

以上命令表示每天的凌晨1点执行一次备份脚本。可以根据实际需求进行修改。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mysql数据备份-定时自动备份dump备份命令 的相关文章

  • MySQL PHP邮政编码比较具体距离

    我试图找出比较一个邮政编码 用户提供的 和一大堆其他邮政编码 现在大约有 200 个邮政编码 之间的距离的最有效方法 相对于加载时间 但它会随着时间的推移而增加 我不需要任何精确的东西 只是在球场上 我下载了整个美国的邮政编码 csv 文件
  • Mysql 中 UNION 子句的替代方案

    我有两张桌子 表 a 表 b table a ID 1 2 3 4 5 7 table b ID 2 3 4 5 6 我必须得到这样的输出而无需UNION命令 ID 1 2 3 4 5 6 7 注意 我有一个联合解决方案 select fr
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • MySQL 按重复项从上到下排序

    我有一个lammer问题 因为我不是mysql专业人士 我有类似的字段 id color 1 red 2 green 3 yellow 4 green 5 green 6 red 我想按重复项进行分组 最常见的重复项先进行分组 所以应该这样
  • MySQL连接字符集问题

    我在 Mac 上使用带有 MySQL 的 velosurf 没有任何编码问题 但是当我切换到 Linux 计算机时 从 velosurf 获得的值未正确编码 我发现这可能是默认连接字符集的问题 在 Mac 上我得到 mysql gt sho
  • 比特纳米。重置mysql根密码

    我如何重置 MySQL 中的 root 密码和帐户 因为我按照如何为其他服务器授予权限的说明操作 并且意外地将 root 用户 Mysql 绑定到其他 IP 地址 现在看来我无法在 localhost 上以管理员身份登录 Thanks 您有
  • Flask-login:无法理解它是如何工作的

    我试图理解如何Flask Login https flask login readthedocs org en latest works 我在他们的文档中看到他们使用预先填充的用户列表 我想使用数据库存储的用户列表 但是 我不明白其中的一些
  • 如何使用 Perl 更改 mysql 密码

    我需要使用 Perl 脚本更改一些 mysql 密码 以下内容在更改数据库条目时有效 但是当我针对 mysql 用户更改修改它时 它将它们重置为空白密码 最后 刷新权限 也很好 但我还没有找到方法 usr bin perl use DBI
  • Java JDBC:更改表

    我希望对此表进行以下修改 添加 状态列 varchar 20 日期列 时间戳 我不确定该怎么做 String createTable Create table aircraft aircraftNumber int airLineCompa
  • 在 MySQL 中存储表情符号的编码问题:如何使用 Prisma ORM 在 NodeJS 中定义字符排序规则?

    亲爱的 Nodejs 专家和数据库专家 我们在 MySQL 数据库中存储表情符号和其他特殊字符时遇到问题 我们使用 Prisma 得到一个错误 这是我们使用的 ORM 参数无法从排序规则 utf8 general ci 转换为 utf8mb
  • 如何修改现有表以添加时区

    我有一个包含 500 多个表的大型应用程序 我必须将应用程序转换为时区感知 当前应用程序使用new java util Date GETDATE 与服务器的时区 即没有任何时区支持 我已将这项任务分为几个步骤 以便于开发 我确定的第一个步骤
  • 如何在mysql中选择具有相同值集的列?

    我的桌子是 patients pid name city disease did dname has disease did pid 我想列出具有相同疾病组的患者 pid 和 did 分别是患者和疾病表中的主键 并且是 has diseas
  • 不允许在 php 中连接到此 MariaDB 服务器

    我尝试在 php 中连接远程服务器数据库 但出现以下错误 Host xx xxx xx xx is not allowed to connect to this MariaDB server in 我的连接代码是这样的 servername
  • Windows 8.1 升级后 Apache 无法工作 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 今天从 Windows 8 升级到 Windows 8 1 后 Apache 不再工作 我上次从 Windows 7 升级到 Window
  • 在 MySQL 中对整数字段运行带引号的数字(字符串)查询时会发生哪些复杂情况

    在 SQL 中 不应引用整数 因为如果引用 它将是一个字符串 但我很好奇如果我这样做会出现什么问题 并发症 例如 SELECT FROM table WHERE id 1 正确的 vs SELECT FROM table WHERE id
  • MySQL 8 用逗号分割字符串并将其转换为JSON ARRAY

    我有以下字符串 a b c d 我想将它转换成一个 json 数组 像这样 a b c d MySQL 8 有什么函数可以实现这个功能吗 Try SELECT CAST CONCAT REPLACE a b c d AS JSON See
  • 合并两个 MYSQL SELECT 查询[重复]

    这个问题在这里已经有答案了 可能的重复 如何将两个 Post Category 表 MYSQL SELECT 查询合并为一个 https stackoverflow com questions 12972130 how to combine
  • 只获取倒数第二条记录 - mysql-query

    我有一个如下表记录 my table id rating description 1 0 0 bed 2 1 0 good 3 0 0 bed 4 1 0 good 5 0 0 bed 6 0 0 bed 7 0 0 bed 现在我通过评级
  • 无法在 Mac 上启动 MySQL

    使用 Brew 安装后 我无法运行 MySQL 我使用的是 OS X El Capitan 版本 10 11 3 和 MySQL Server 版本 5 7 11 当我启动服务器时 我收到 启动 MySQL 错误 服务器退出而不更新 PID
  • 错误代码:1305。函数或过程不存在

    因此 我在 MySQL 中创建一个函数 然后尝试向用户授予使用该函数的权限 但我无法这样做 这就是我正在做的 DELIMITER USE rxhelp36 scbn DROP FUNCTION IF EXISTS businessDayDi

随机推荐