我打算在一段时间内备份mySQL数据库。 例如:仅备份1月到6月的数据。
有可能吗?我想这样做的原因是我不想备份太旧的数据库。 如果有可能请给我一些建议如何做到这一点。 感谢。
答案 0 :(得分:0)
我假设您要根据日期备份表ROWS,而不是表本身。
如果您的表格中包含date
或timestamp
列,则可以使用INTO OUTFILE
查询根据日期备份某些行。
或者,从命令行,您可以将mysqldump与--where
选项一起使用。
看到这个答案: MYSQL Dump only certain rows
答案 1 :(得分:0)
试试这个:
exec("mysqldump --opt -u$db_user -p$db_pass --no-create-info --where date >= '2013-08-01' my_database my_table > backup.sql");
答案 2 :(得分: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
然后按crontab -e
编辑crobjob并添加如下行:
* * * * * /usr/local/bin/php /home/moein/projects/WebService/index.php
#this cronjob executed every min.
其他方式你可以在mysql中使用event
来获得备份。但是你的mysql版本应该是&gt;的 5.1.8 强>
mysql dev page更好的描述。