无法在where子句中使用日期条件执行mysqldump

时间:2019-05-21 05:45:53

标签: mysql

我正在尝试通过以下命令从MariaDB中获取增量转储:

 mysqldump --opt -h<HOST_NAME> -u<USER_ID> -p<PASSWORD> --no-create-info --where=date >= '2019-04-01' <DATABASE_NAME>  > backup.sql

我遇到以下错误:

mysqldump: Got error: 1044: Access denied for user 'user'@'%' to
database '2019-04-01' when selecting the database

有人可以帮我弄清楚我在这里犯什么错误吗?

1 个答案:

答案 0 :(得分:1)

您给出的命令中的--where条件由几个用空格分隔的单词组成。但是--where选项的参数必须是一个参数,至少在Shell解释的范围内。

因此,参数''2019-04-01'被解释为数据库名称,而不是部分条件。

尝试一下:

mysqldump ... --where="date >= '2019-04-01'" <DATABASE_NAME> > backup.sql

双引号将分隔整个表达式,并使外壳将其解释为单个参数。