我在MySql中有一个很大的数据库,我需要每天左右对其进行备份。
我需要能够从任何计算机上进行备份,因此我考虑制作一个php脚本来做到这一点,并将此php脚本置于联机状态(具有密码保护和授权等功能,因此只有我可以访问它)。
但是,我不知道如何正确完成?
我应该使用哪些命令,并且可以更改备份的设置(例如Add AUTO_INCREMENT value = true)?
Add AUTO_INCREMENT value = true
我将不胜感激…
另外,如果这是一个错误的方法(不安全,或者使用错误的sql文件提供了错误的备份),那么还建议使用其他哪种方法?我具有外壳访问权限,并且具有VPS(ubuntu服务器)。
我的Mysql版本是5.1
谢谢
无需在数据库备份中使用PHP。您只需要一个使用mysqldump备份数据库的脚本,并设置一个CRON作业来定期执行该脚本:
mysqldump db_name > backup-file.sql
…将通过将mysqldump的输出重定向到指定的文件名,将数据库备份到文件中。
Peter提出了一个很好的观点,即该命令只会给您一天的归档时间,任何超过两天的归档都将被覆盖。这样一来,您就可以拥有7天的滚动日志:
CURRENT_DAY_OF_WEEK=`date '+%u'` FILENAME="mysqlbackup_"$CURRENT_DAY_OF_WEEK".sql" mysqldump db_name > $FILENAME
另请注意,将应用文件权限-如果执行脚本的用户对该文件夹没有权限,则无法写入文件。