1

快疯了。我没有找到这条确切的线,并使用 MySQL 参考中的示例,我显然在这里交叉眼!

这是错误的语法,但我不确定在哪里放置选项 --ignore-table=search_index 并且尝试了许多变体,除了正确的变体!

$cmd = "mysqldump -u --ignore-table=search_index " . $prod_db_user . " -p" . $prod_db_pass . " " . $prod_db_1 . " > " . $qa_backup_name;

我只是想转储数据库并排除名为 search_index 的表。

谢谢

4

1 回答 1

1

$prod_db_user用户名放在 之后-u,因为那是用户名标志。

$cmd = "mysqldump -u{$prod_db_user} --ignore-table=search_index  -p{$prod_db_pass} $prod_db_1  > $qa_backup_name";

由于这是一个双引号字符串,所有 PHP 变量都可以直接进入该字符串。但是,请务必先逃脱他们escapeshellarg()

$prod_db_user = escapeshellarg($prod_db_user);
$prod_db_pass = escapeshellarg($prod_db_pass);
// etc...

最后,根据执行环境,可能需要指定完整路径(如果在(or ) 环境变量mysqldump中没有找到)。$PATH%PATH%

$cmd = "/path/to/mysqldump -u{$prod_db_user} ....";
于 2012-12-18T00:21:45.937 回答