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