2

我打算在一段时间内备份​​mySQL数据库。例如:只备份一月到六月的数据。

有可能这样做吗?我想这样做的原因是我不想备份太旧的数据库。如果可能的话,请给我一些建议如何做到这一点。谢谢。

4

3 回答 3

0

我假设您要根据日期备份表 ROWS,而不是表本身。

例如,如果您的表有一个dateor列,那么您可以使用查询timestamp基于日期备份某些行。INTO OUTFILE

或者,从命令行,您可以使用带有--where选项的 mysqldump。

看到这个答案: MYSQL Dump only certain rows

于 2013-08-26T06:33:34.043 回答
0

尝试这个 :

exec("mysqldump --opt -u$db_user -p$db_pass --no-create-info --where date >= '2013-08-01' my_database my_table > backup.sql");
于 2013-08-26T06:47:32.213 回答
0

你有几种方法可以做到这一点,你可以使用 shell 脚本并mysqldump作为 cronjob 运行,你应该只写下面的脚本,然后将它添加到你的 crobjob 中。

#!/bin/bash
mysqldump --add-drop-table -h <hostname> -u <username> --password=<password> --all-databases > backup.sql
filename="backup.sql."`eval date +%Y%m%d`".tgz"
tar -czf $filename backup.sql 
rm backup.sql 

然后编辑 crobjobcrontab -e并添加类似以下行的内容:

* * * * * /usr/local/bin/php /home/moein/projects/WebService/index.php
#this cronjob executed every min.

您可以event在mysql中使用其他方式来获取备份。但是您的mysql版本应该> 5.1.8

在mysql 开发页面上有更好的描述。

于 2013-08-26T06:53:50.867 回答