我想每天备份我的 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 语法是否正确?感谢您的任何见解