【问题标题】:How to automate database backup using phpmyadmin如何使用 phpmyadmin 自动备份数据库
【发布时间】:2011-10-02 12:21:20
【问题描述】:

我目前正在使用 phpmyadmin 导出作为 sql 转储手动进行数据库备份,结果文件名将是 spbkYYMMDD(Y;year m:month D:day)。有没有办法自动化数据库备份以便我得到 sql定期转储,文件名应该会相应地自动生成。你能解释一下逻辑吗?

【问题讨论】:

  • 你需要它作为网页界面吗?
  • 需要一个网络界面是什么意思?您将在界面中拥有什么?
  • 我们可以给时间备份间隔文本框来捕捉时间间隔
  • @Vinay:检查答案。已经更新了
  • 您可以简单地使用mysqlbackupftp.com。将 MySQLBackupFTP 工具连接到您的 phpMyAdmin 并创建一个计划来备份您的数据库。

标签: php phpmyadmin


【解决方案1】:

在 unix shell 中运行 crontab 并创建规则以启动创建数据库备份的过程

 0 0 * * * /usr/local/bin/mysqldump -uLOGIN -PPORT -hHOST -pPASS DBNAME | gzip -c > `date “+\%Y-\%m-\%d”`.gz

同时检查this

编辑

你只需要编写的Web界面,不要以为你可以找到现成的代码。但是您需要使用 cron 作业来自动化一个函数,以便在 unix 机器上定期运行。您可以找到有关如何编写 cron-job here 的更多信息。所以你现在只需要写一个web界面,它从用户那里获取数据并根据输入改变规则(我认为你可以自己做)

【讨论】:

  • 如果您的数据库服务器仅在 localhost 或某些 RFC 1918 地址上可用,则 mysqldump 无法从外部工作。
  • 如果你真的需要用 phpMyAdmin 来做这件事,请查看我对stackoverflow.com/a/11031535/219640 的回答。
  • 删除那些奇怪的引号如果日期抱怨格式: : date “+\%Y-\%m-\%d” => date +\%Y-\%m-\%d
  • 您的“也检查一下”链接无效或不再存在。
【解决方案2】:

代码将是这样的:

    @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,您可以从任务调度程序运行它

【讨论】:

    【解决方案3】:

    自动化 MySQL 数据库备份的最佳方法是使用一些备份软件和 phpmyadmin 实用程序。第二种方法通常具有无需额外付费的优点和不受控制的安全性的缺点,即使用 cron 实现一些脚本。

    就个人而言,除了 phpMyAdmin 之外,我更喜欢 Handy Backup。以the link to an article 为例。它不是最热门的备份解决方案,但相对便宜且非常稳定。

    【讨论】:

      【解决方案4】:

      我为这个确切的用例编写了一个快速脚本,因为我无法访问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:您需要使用 Python 3 才能工作(如 github 页面所述)
      【解决方案5】:

      当您拥有管理员权限时,在文件夹中创建 .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"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多