我将在一段时间内备份mySQL数据库。例如:只备份1月至6月的数据。
有可能这样做吗?我想这么做的原因是我不想备份太老的数据库。如果可能的话,请给我一些建议。谢谢。
发布于 2013-08-26 06:33:34
我假设您希望根据日期而不是表本身备份表行。
如果表中有date或timestamp列,则可以使用INTO OUTFILE查询根据日期备份某些行。
或者,在命令行中,可以使用mysqldump和--where选项。
见以下答案:MYSQL只转储某些行
发布于 2013-08-26 06:47:32
试试这个:
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-26 06:53:50
您有几种方法可以这样做,您可以使用shell脚本并将mysqldump作为cron作业运行,您应该只编写类似于以下脚本的内容,然后将其添加到您的crob作业中。
#!/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 然后通过crontab -e编辑钩编作业,并添加如下行:
* * * * * /usr/local/bin/php /home/moein/projects/WebService/index.php
#this cronjob executed every min.在mysql中使用event获取backup.but的其他方式--您的mysql版本应该是> 5.1.8
更好的描述在mysql开发页。
https://stackoverflow.com/questions/18437910
复制相似问题