【发布时间】:2016-07-26 17:39:27
【问题描述】:
我设计了一个 Web 应用程序并连接到 MySQL 数据库。现在我想每天自动备份数据库中的数据,因为数据库中的数据每天都在变化。当我通过命令行尝试mysqldump并通过工作台导出选项时,我只能备份表结构,但不能备份其中的数据。
请有人告诉我如何每天将我的数据备份到云端。感谢任何帮助
【问题讨论】:
我设计了一个 Web 应用程序并连接到 MySQL 数据库。现在我想每天自动备份数据库中的数据,因为数据库中的数据每天都在变化。当我通过命令行尝试mysqldump并通过工作台导出选项时,我只能备份表结构,但不能备份其中的数据。
请有人告诉我如何每天将我的数据备份到云端。感谢任何帮助
【问题讨论】:
您可以使用简单的 php 脚本 + crontab 来执行此操作。
我正在分享一个以 csv 格式转储数据的示例代码(您可以通过更改命令中给定的正则表达式将其更改为您想要的任何格式):
exec('mysql -B -u '.$dbUser.' -p'.$dbPassword.' '.$dbName.' -h '.$dbHost.' -e "SELECT * FROM user;" | sed "s/\t/,/g" > '.$uploadPath.'user.csv');
exec('mysql -B -u '.$dbUser.' -p'.$dbPassword.' '.$dbName.' -h '.$dbHost.' -e "SELECT * FROM profile;" | sed "s/\t/,/g" > '.$uploadPath.'profile.csv');
---
---
---
在您的脚本中动态配置/生成$uploadPath(例如: /var/log/yourApp/20160406/)。
每天使用crontab 运行脚本(假设您在 linux 服务器上):
1 0 * * * /usr/bin/php /var/www/yourscript.php
每天在12.01am 运行您的脚本,数据将被备份。
【讨论】:
crontab 不是 PHP 的东西。这是job scheduler - 我的意思是linux OS 如果你想设置预定的工作 - 你可以使用crontab。在其他操作系统中可能会有所不同。所以基本上你需要将代码放在PHP 文件中,然后在你的服务器中设置scheduled job 以便每天在某个时间运行 php 文件。 crontab 只是一个例子。
Task Scheduler 应用程序。您可以尝试解决这个问题。我以前没有使用过tomcat - 所以我不能告诉你。谢谢。