在ubuntu上自动备份mysql

use*_*928 18 mysql backup

我有一个带有 Mysql 数据库的 Ubuntu 服务器。我想在夜间在另一台服务器(例如 ovh)上设置此数据库的自动备份。

我不知道什么是最好的工具。如果有人有一些建议...

提前致谢。

Edu*_*pez 36

自动化此任务的最简单方法是结合 MySQL Dumps 和 cronjob。您可以在本网站和其他 Internet 站点上找到有关此主题的大量信息,但为了完成起见:

创建一个 mysqldump.sh 文件

其中将包含我们将在 cron 作业中安排的 mysql dump 命令(替换用户、密码和路径以匹配您的环境):

mysqldump -u root -p<mysql_root_password> --all-databases | gzip > /desired/backup/folder/mysqldb_`date +%F`.sql.gz
Run Code Online (Sandbox Code Playgroud)

编辑:如果您希望脚本将备份存储在远程位置,只需挂载相应的设备或共享并使用脚本中的挂载路径即可。

测试脚本

确保脚本具有执行权限:

chmod +x /path/to/mysqldump.sh
Run Code Online (Sandbox Code Playgroud)

执行脚本:

sh /path/to/mysqldump.sh
Run Code Online (Sandbox Code Playgroud)

并测试它是否正常工作(备份文件将在指定的备份文件夹中创建)。

创建和安排新的 cron 作业

在命令提示符中键入

sudo crontab -e
Run Code Online (Sandbox Code Playgroud)

并在文件底部添加以下行:

30 23 * * * /path/to/mysqldump.sh
Run Code Online (Sandbox Code Playgroud)

这将在每天 23:30 执行脚本。

扩展这个简单的脚本

为了改进这种简单的备份方法,您可以做很多事情:

  • 备份到另一个系统
  • 监控磁盘空间
  • 电子邮件报告
  • ...

所以不要在这里结束并进行实验!:-)

使用备份工具或基于云的备份服务

虽然上述方法是最简单的方法之一,并且可以扩展以满足您的特定需求,但值得一提的是还有其他替代方法:

  • 备份工具,例如 AutoMySQLBackup,这是一个开源应用程序,可以简化配置电子邮件通知、压缩、加密、轮换和备份类型(例如增量)的过程。至于 Mai 2018,它可以通过 APT 用于 Ubuntu Server。
  • 基于云的备份服务,例如 BackupBird、myRepono、Bitcan 等。如果您管理多个数据库服务器并希望集中管理它们的所有备份,这可能会很有趣。

请记住,我与上述任何解决方案和服务都没有任何关系,我列出它们仅供参考,因此使用它们的风险由您自己承担。

有用的链接/参考:

Cron -> https://en.wikipedia.org/wiki/Cron

MySQL 转储 -> https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html

  • 使用`date +%F` - 它会自动选择适合用户语言环境的年+月+日期的组合(例如,我会得到`YYYY-MM-DD`)。 (4认同)
  • 如果您必须使用 sudo 来执行此操作 (a) 调用 `sudo crontab -e` 并且不要忘记使脚本可执行:`chmod +x /path/to/mysqldump.sh` (2认同)