MySQL 语句可以在 mysql 中运行,但不能在命令行中运行

问题描述 投票:0回答:1

我正在尝试从命令行执行特定的 mysql 命令。当我这样做时,它会失败,但是如果我从 mysql Interactive 中执行完全相同的命令,它就会起作用。

这是失败的命令行版本:

$ mysql -uscott -p -e "GRANT ALL PRIVILEGES ON `myuser\_%`.* TO 'myuser'@'localhost';"

给出的错误是:

ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '* TO 'myuser'@'localhost'' at line 1

仅将 mysql 命令复制并粘贴到 mysql 中即可:

mysql> GRANT ALL PRIVILEGES ON `myuser\_%`.* TO 'myuser'@'localhost';

在为数据库创建用户时,我从 phpmyadmin 逐字获取了此命令。我该如何修复它以便它可以从命令行运行?

linux sh
1个回答
1
投票

* 正在被您的 shell 扩展(bash?)。

您可以通过在 SQL 语句周围使用单引号而不是双引号或使用 \

转义 * 来解决此问题
© www.soinside.com 2019 - 2024. All rights reserved.