首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL -每天备份数据库

问MySQL -每天备份数据库
EN

Stack Overflow用户
提问于 2015-10-09 15:27:17
回答 3查看 2.8K关注 0票数 1

我开发了一个与PHP和MySQL一起工作的议程(服务器端)。我最不需要做的一件事就是对数据库进行可信的每日备份。

这可能是我认为最简单的:编写一个php脚本,它每24小时将一个文件(其名称为时间戳)保存在服务器中的某个文件夹中。将其与时间机器或其他备份软件相结合,将此文件夹备份到外部磁盘就足够了。

因此,现在的问题是:如何使php脚本每天自动运行一次?如何从php脚本保存带有sql备份的文件?(类似于sql导出)

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-09 15:31:55

如果您正在运行apache服务器:

代码语言:javascript
复制
sudo nano /etc/crontab

增加以下一行:

代码语言:javascript
复制
0 0 * * * root mysqldump -u root -proot db_name > /home/username/db_backup/$( date +"\%Y_\%m_\%d" ).sql

每24小时一次0 0*** =>

票数 5
EN

Stack Overflow用户

发布于 2015-10-09 15:31:48

如果您的服务器是linux,则可以使用以下脚本创建cron:cronsql.sh。

代码语言:javascript
复制
#!/bin/bash

path=/home/backup/
projet=(databasename1 databasename2)
now=$(date +"%Y-%m-%d")

for arg in ${projet[*]}
do
    if [ ! -d $path$arg ]; then
        mkdir $path$arg
    fi
    cd $path$arg
    mkdir dump$now
    cd dump$now
    mysqldump -dBR --triggers -p"dbpassword" $arg > structure.sql
    mysqldump --no-create-info -p"dbpassword" $arg > data.sql

done

它将生成一个具有数据库名称的文件夹。在该文件夹中,包含日期的文件夹、structure.sql文件和data.sql文件。

代码语言:javascript
复制
>databasename1
---->20151009
    ---->data.sql
    ---->structure.sql
---->20151008
    ---->data.sql
    ---->structure.sql
---->20151007
    ---->data.sql
    ---->structure.sql

对于cron,请使用crontab -e

如果59 23 * * * /home/backup/cronsql.sh在/home/ cronsql.sh /backup中,则添加cronsql.sh

最后但并非最不重要的是,您可以添加crontab。

代码语言:javascript
复制
01 01 * * * find /home/backup/ -mindepth 2 -ctime +30 -exec rm -fr {} +

它将删除30天以上的每个文件/文件夹。所以你每隔30天就有后备。也不需要手动清理

票数 0
EN

Stack Overflow用户

发布于 2015-10-13 09:37:36

我发现,如果你在运行窗户,你可以用一个蝙蝠来做。这将保护您的数据库作为zip,您也可以上传到ftp,通过改变这个脚本一点。遵循下面的链接:http://www.redolive.com/utah-web-designers-blog/automated-mysql-backup-for-windows/ --如果你有什么问题就问吧,这很容易做

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33042041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档