我正在尝试从命令行执行特定的 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 逐字获取了此命令。我该如何修复它以便它可以从命令行运行?
* 正在被您的 shell 扩展(bash?)。
您可以通过在 SQL 语句周围使用单引号而不是双引号或使用 \
转义 * 来解决此问题