Php 使用mysqldump排除表的语法
快发疯了。我找不到这一行,使用MySQL引用中的示例,我在这里显然是错的 这是错误的语法,但我不确定将选项放在何处--ignore table=search\u index,并且尝试了许多变体,除了正确的一个Php 使用mysqldump排除表的语法,php,mysql,Php,Mysql,快发疯了。我找不到这一行,使用MySQL引用中的示例,我在这里显然是错的 这是错误的语法,但我不确定将选项放在何处--ignore table=search\u index,并且尝试了许多变体,除了正确的一个 $cmd = "mysqldump -u --ignore-table=search_index " . $prod_db_user . " -p" . $prod_db_pass . " " . $prod_db_1 . " > " . $qa_backup_name; 我只是尝
$cmd = "mysqldump -u --ignore-table=search_index " . $prod_db_user . " -p" . $prod_db_pass . " " . $prod_db_1 . " > " . $qa_backup_name;
我只是尝试转储数据库并排除名为search\u index的表
谢谢将
$prod\u db\u user
用户名放在-u
之后,因为这是用户名标志
$cmd = "mysqldump -u{$prod_db_user} --ignore-table=search_index -p{$prod_db_pass} $prod_db_1 > $qa_backup_name";
由于这是一个双引号字符串,所有PHP变量都可以直接进入该字符串。但是,一定要用第一个!逃离它们
最后,根据执行环境的不同,可能需要指定mysqldump
的完整路径(如果在$path
(或%path%
)环境变量中未找到该路径)
$cmd = "/path/to/mysqldump -u{$prod_db_user} ....";
将
$prod\u db\u user
用户名放在-u
之后,因为这是用户名标志
$cmd = "mysqldump -u{$prod_db_user} --ignore-table=search_index -p{$prod_db_pass} $prod_db_1 > $qa_backup_name";
由于这是一个双引号字符串,所有PHP变量都可以直接进入该字符串。但是,请确保使用first!对其进行转义
最后,根据执行环境的不同,可能需要指定mysqldump
的完整路径(如果在$path
(或%path%
)环境变量中未找到该路径)
$cmd = "/path/to/mysqldump -u{$prod_db_user} ....";
好的,它工作过一次,但第二次我得到“非法使用option--ignore table=。”…只有当我集成--ignore table=search_索引时,它才会失败,否则原始的和您的想法都会起作用。但是,我没有像上面在脚本中那样在任何一个实例中转义,实际变量的定义如下:$prod_db_user=“admin”;@kellyjohnson如果您将数据库指定为
$prod_db_1
,那么排除database.table
是没有意义的。好吧,这是Drupal安装,而drush尚未安装在该服务器上。因此,正常的mysqldump复制所有缓存表和搜索索引,从而生成608meg sql文件!排除搜索至少可以降低20%,在这种情况下可能更高。这就是为什么我要排除这个表。好吧,它工作过一次,但第二次我得到“非法使用选项--忽略表=”…只有当我集成--ignore table=search\u索引时,它才会失败,否则原始的和您的想法都会起作用。但是,我没有在脚本中的上述任何一个实例中进行转义,实际变量的定义如下:$prod\u db\u user=“admin”;@kellyjohnson如果您将数据库指定为$prod_db_1
,那么排除database.table
是没有意义的。好吧,这是Drupal安装,而drush尚未安装在该服务器上。因此,正常的mysqldump复制所有缓存表和搜索索引,从而生成608meg sql文件!排除搜索至少可以降低20%,在这种情况下可能会更高。这就是为什么我试图排除这个表。