0

我有一个 MySQL 数据库,我想每天备份到我的 Windows PC 上的 Dropbox 文件夹。

如何从 Windows 7 自动执行此操作?

4

2 回答 2

3

备份 mysql 数据库的最简单方法之一是创建转储文件。这就是mysqldump目的。请阅读mysqldump.

在其最简单的语法中,您可以使用以下命令创建转储:

mysqldump [connection parameters] database_name > dump_file.sql

[connection parameters]需要将本地客户端连接到数据库所在的 MySQL 服务器。

mysqldump将创建一个转储文件:一个纯文本文件,其中包含创建和填充数据库表所需的 SQL 指令。该>字符会将 的输出重定向mysqldump到文件(在本例中为dump_file.sql)。当然,您可以压缩此文件以使其更易于处理。

您可以将该文件移动到任何您想要的位置。

要恢复转储文件:

  1. restore在目标服务器中创建一个空数据库(比如说)
  2. 加载转储:

    mysql [connection parameters] restore < dump_file.sql


当然,您还可以使用其他一些“开关” mysqldump。我经常使用这些:

  • -d:这将告诉mysqldump创建一个“空”备份:表和视图将被导出,但没有数据(如果你想要的只是一个数据库“模板”,这很有用)
  • -R:在转储文件中包含存储的例程(过程和函数)
  • --delayed-insert: 使用insert delayed而不是insert填充表格
  • --disable-keys: 将insert每个表的语句括在alter table ... disable keys和之间alter table ... enable keys;这可以使插入更快

您可以mysqldump在批处理文件中包含命令和任何其他压缩和复制/移动命令。

于 2014-09-22T04:32:55.603 回答
2

我提取备份并将其推送到 Dropbox 的解决方案如下。

可以在此处下载 Ubuntu 批处理文件的示例。

简单来说

  1. 准备批处理脚本backup.sh
  2. 运行backup.sh以创建备份版本,例如backup.sql
  3. 复制backup.sql到 Dropbox 文件夹
  4. 安排 Ubuntu/Windows 任务来运行backup.sh任务,例如每天晚上

详细步骤

  1. 可以在此处找到有关备份和恢复 MySQL 数据库的所有信息。

备份到压缩文件

mysqldump -u [uname] -p [dbname] | gzip -9 > [备份文件.sql.gz]

  1. 可以在此处找到如何从 Windows 远程执行“备份”命令。

plink.exe -ssh -pw -i "路径\to\private-key\key.ppk" -noagent username@server-ip

  1. 如何将文件带到 Dropbox 可以在这里找到

创建应用 https://www2.dropbox.com/developers/apps

添加一个应用程序并选择Dropbox API App。注意创建app keyapp secret

在 Ubuntu 中安装 Dropbox API;使用上面的 app key 和 app secret

$ wget https://raw.github.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh
$ chmod +x dropbox_uploader.sh

按照说明授权访问应用程序,例如

http://www2.dropbox.com/1/oauth/authorize?oauth_token=XXXXXXX

测试应用程序是否正常工作 - 应该没问题

$ ./dropbox_uploader.sh info

该应用程序已创建,与之关联的文件夹是YourDropbox\Apps\<app name>

要使用的命令

列出文件

$ ./dropbox_uploader.sh list

上传文件

$ ./dropbox_uploader.sh upload <filename> <dropbox location>
e.g.
$ ./dropbox_uploader.sh upload backup.sql .

这会将文件存储backup.sqlYourDropbox\Apps\<app name>\backup.sql

完毕

  1. 如何安排 Ubuntu 可以在这里查看crontab

调用命令

sudo crontab -e

插入一行以每天运行 backup.sh 脚本,如下所示

0 0 * * * /home/userName/pathTo/backup.sh

解释:

minute (0-59), hour (0-23, 0 = midnight), day (1-31), month (1-12), weekday (0-6, 0 = Sunday), command

或者干脆我们可以使用

@daily /home/userName/pathTo/backup.sh

笔记:

  • 要监视 crontab 任务,这里有一个很好的指南。 在此处输入图像描述
于 2014-09-23T07:58:46.533 回答