0

我想每天备份我的 MySQL 数据库,可以使用 BigDump 恢复,因为我的一张表有超过 4,000,000 条记录。问题是,它不能使用扩展插入,正如他们网站上所解释的那样。

注意 1:BigDump 将无法处理包含扩展插入的大型表。扩展插入包含一个 SQL 查询中的所有表条目。BigDump 无法拆分此类 SQL 查询。在大多数情况下,如果某些查询包含多行,BigDump 将停止。

我正在尝试从 ChronJob 创建 SQL 转储,以便它与此脚本兼容?从他们的常见问题页面中,您可以使用 phpmyadmin 手动获得所需的结果:

在旧版本的 phpMyAdmin 中,在导出设置中查找扩展插入开关并将其设置为关闭。在较新的 phpMyAdmin 版本中,选择在每个 INSERT 语句中包含列名,以便在导出对话框的数据转储选项中使用语法。

任何人都可以帮助我使用 PHP 来做到这一点吗?我根本没有使用 shell 命令的经验!我试图遵循 mysqldump文档这是我已经得到的:

<?php
set_time_limit(86000);
include($_SERVER['DOCUMENT_ROOT']."/pagetop.php");
$db = new dbsettings;
$filename = date("d-m-Y");
exec("
    mysqldump 
        --user=".$db->username." 
        --password=".$db->password." 
        --host=".$db->hostname." 
        --add-drop-database 
        --add-drop-table 
        --skip-extended-insert 
        --disable-keys 
        --add-locks 
        --force 
        ".$db->databaseName." 
        > 
    /backups/".$filename.".sql
    ");
?>

我是否遗漏了任何应该使用的论点?我的 exec 语法是否正确?感谢您的任何见解

4

0 回答 0