我希望在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)
答案 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