我打算在一段时间内备份mySQL数据库。 例如:仅备份1月至6月的数据。MySQL-可以在一段时间内备份mySQL数据库吗?
有没有可能这样做?我想这样做的原因是我不想备份太旧的数据库。 如果可能,请给我一些建议如何做到这一点。 谢谢。
我打算在一段时间内备份mySQL数据库。 例如:仅备份1月至6月的数据。MySQL-可以在一段时间内备份mySQL数据库吗?
有没有可能这样做?我想这样做的原因是我不想备份太旧的数据库。 如果可能,请给我一些建议如何做到这一点。 谢谢。
我假设你想基于日期备份表ROWS,而不是表本身。
如果您的表具有date
或timestamp
列,则可以使用INTO OUTFILE
查询来基于日期备份某些行。
或者,从命令行,你可以使用mysqldump和--where
选项。
看到这个答案: MYSQL Dump only certain rows
如果我需要以这种方式备份包含所有表的整个数据库,这个--where选项仍然适用于这种情况?提供的答案似乎只是在特定的表中备份某一行数据。 – user2717047
试试这个:
exec("mysqldump --opt -u$db_user -p$db_pass --no-create-info --where date >= '2013-08-01' my_database my_table > backup.sql");
你有几种方法可以做到这一点,你可以使用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
然后通过crontab -e
编辑crobjob并添加类似下面一行:
* * * * * /usr/local/bin/php /home/moein/projects/WebService/index.php
#this cronjob executed every min.
可以使用event
在MySQL中获取backup.but你的MySQL版本,其他的方法应该是>5.1.8
更多描述在mysql dev page。
作为主题搁置,真的吗?我认为SQL查询甚至命令行工具都适合这个网站。 –