2016-08-19 5 views
0

Я пытаюсь выполнить определенную команду mysql из командной строки. Когда я это делаю, он терпит неудачу, но если я выполню ту же самую команду изнутри mysql interactive, она работает.Оператор MySQL работает в mysql, но не из командной строки

Вот версия командной строки, которая терпит неудачу:

$ 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 при создании пользователя для базы данных. Как я могу его исправить, чтобы он работал из командной строки?

ответ

1

* Расширяется вашей оболочкой (bash?).

Вы можете исправить это с помощью одинарных кавычек заявления SQL вместо двойных или побега * с \

+0

Изменения на одинарные работали как шарм. Я также попытался сбежать с *, но mysql не понравился \\ *, поэтому использование одинарных кавычек для оператора mysql с двойными кавычками внутри является правильным и, по-видимому, единственным решением. Благодаря! – Scott