命令行MySQL转储与数据库名称中的连字符

时间:2014-11-17 21:42:56

标签: mysql

我希望在mysql转储过程中忽略某些表格到大尺寸。

/usr/bin/mysqldump -u$DBUSER -p$DBPWD $IGNORETABLES --databases $db | gzip > "$OUTPUTDIR/db-currentdate.sql.gz"

我想忽略使用--ignore-table = database.table的表,但我的数据库在名称中有一个连字符断开。有没有办法用连字符转义数据库名称。请记住我是通过命令行而不是php(这将很容易!)

IGNORETABLES变量将从表构建,并在最终备份之前进行比较。

我让它在没有连字符的情况下处理数据库中的表。一旦我用连字符放入一个,它就会给出所有表格。 **请注意,数据库命名约定是使用parallels控制面板的结果(domain_com _-_ database)

3 个答案:

答案 0 :(得分:3)

您需要在数据库名称db-name

周围添加反引号

e.g。

mysqldump' dbname' > DB-名.sql

答案 1 :(得分:0)

您使用的是哪个版本的MySQL? 5.5.40这对我来说似乎很好。

我尝试过:

CREATE DATABASE `domain_com_-_database`;
USE `domain_com_-_database`;
CREATE TABLE a (i INT);
CREATE TABLE b (i INT);

然后:

mysqldump --ignore-table=domain_com_-_database.b --databases domain_com_-_database

输出仅包含表a,no b。

(对不起,我知道我应该将此作为评论发布,但我没有这样的声誉。)

答案 2 :(得分:0)

我实际上是以shell脚本的形式运行命令。不是通过mysql命令行。基本上我一次只能提交一行,而“ - ”会中断(不会忽略)

MySQL版本5.5.30