繁体   English   中英

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

[英]Command Line MySQL dump with hyphen in database name

我正在寻找在mysql dump期间忽略某些表的方法。

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

我想使用--ignore-table = database.table忽略表,但是我的数据库的名称中有一个连字符,它会中断。 有没有一种方法可以用连字符转义数据库名称。 请记住,我是通过命令行而不是php来完成的(那很容易!)

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

我在没有连字符的数据库中的表上工作。 一旦我用连字符加一,它就会给出所有表。 **请注意,数据库命名约定是使用并行控制面板(domain_com _-_ database)的结果

您需要在数据库名称db-name周围打勾

例如

mysqldump'数据库名称'>数据库名称.sql

您正在使用哪个版本的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,不包含b。

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

我实际上是将命令作为外壳脚本运行。 不通过mysql命令行。 基本上我一次只能提交一行,并且“-”会中断(不要忽略)

MySQL 5.5.30版

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM