如何使用phpmyadmin自动备份数据库

16

我目前使用phpmyadmin导出sql dump手动备份数据库,结果文件名将为spbkYYMMDD(Y; year年 m: month月 D: day日)。有没有办法自动备份数据库,以便我定期获得sql dump,并相应地自动生成文件名。你能解释一下逻辑吗?


你需要将它作为一个Web界面来完成吗? - Sudantha
你所说的需要一个网络界面是什么意思?你会在界面中包括什么? - Balanivash
我们可以提供时间备份间隔文本框来捕获时间间隔。 - n92
@Vinay:请检查答案。我已经更新了它。 - Balanivash
1
您可以简单地使用http://mysqlbackupftp.com/。将MySQLBackupFTP工具连接到您的phpMyAdmin并创建一个备份数据库的计划。 - Alexandr Omelchenko
5个回答

8
在Unix shell中运行crontab,并创建启动进程的规则来创建数据库备份。
 0 0 * * * /usr/local/bin/mysqldump -uLOGIN -PPORT -hHOST -pPASS DBNAME | gzip -c > `date “+\%Y-\%m-\%d”`.gz

同时请查看这篇文章

编辑

关于网页界面,你只需要自己编写,因为我认为你不可能找到现成的代码。但是,你需要使用cron job在Unix机器上定期运行功能。你可以在这里找到有关如何编写cron job的更多信息。所以,现在你只需要编写一个网页界面,该界面从用户处获取数据并根据输入更改规则(我认为你们自己可以做到)。


如果您的数据库服务器仅在本地主机或某些RFC 1918地址上可用,则mysqldump无法从外部工作。 - Erik Cederstrand
如果你确实需要使用phpMyAdmin来完成这个任务,请参考我在https://dev59.com/62LVa4cB1Zd3GeqPtiZr#11031535的回答。 - Erik Cederstrand
2
删除那些奇怪的引号,如果日期格式有问题:date“+\%Y-\%m-\%d”=> date +\%Y-\%m-\%d - Benjamin Crouzier
你的“也请检查这个”链接无效或已经不存在。 - Christhofer Natalius

3
代码将会是这样:
    @echo off
    for /f "tokens=1" %%i in ('date /t') do set DATE_DOW=%%i
    for /f "tokens=2" %%i in ('date /t') do set DATE_DAY=%%i
    for /f %%i in ('echo %date_day:/=-%') do set DATE_DAY=%%i
    for /f %%i in ('time /t') do set DATE_TIME=%%i
    for /f %%i in ('echo %date_time::=-%') do set DATE_TIME=%%i
    "j:\xamppp\bin\mysqldump" -u root -p  --all-databases>j:\backupmysql\%DATE_DAY%_%DATE_TIME%_database.sql

并将其保存为 .bat 文件,您可以通过任务计划程序运行它。

2

我为这个确切的使用场景编写了一个快速脚本,因为我没有访问mysqldump控制台,所以需要自己来完成:

下载: Github: phpmyadmin_sql_backup.py

在您的情况下使用方法:

./phpmyadmin_sql_backup.py "https://www.example.com/phpmyadmin_login_page" USERNAME PASSWORD --basename "" --prepend-date --prefix-format "spbk%y%m%d" --overwrite-existing -o OUTPUT_DIRECTORY

希望对其他人有所帮助。


Python脚本无法运行,错误行为第66行:语法无效。 - Jerry1
Jerry1:按照 github 页面上的说明,你需要使用 Python 3 才能使其正常运行。 - phoibos

1
自动备份MySQL数据库的最佳方法是使用一些备份软件与phpmyadmin实用程序结合使用。第二种方式通常具有无需额外付款的优点,但缺点是安全性不受控制,即使用cron实现一些脚本。
个人而言,我更喜欢在我的phpMyAdmin中添加Handy Backup。请参见文章链接作为示例。它可能不是最热门的备份解决方案,但相对便宜且非常稳定。

0

当您拥有管理员权限时,在文件夹中创建 .bat 文件。 下面是一个简单的 .bat 文件

cd "C:\XAMPP\mysql\bin"
mysqldump -hlocalhost -uroot ca > "D:\cash\bkcash\ca\db_%date:~-4,4%%date:~-10,2%%date:~7,2%_%time:~0,2%%time:~3,2%%time:~6,2%.sql"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接