2016-08-19 16 views
0

コマンドラインから特定のmysqlコマンドを実行しようとしています。私がそうすると失敗しますが、mysqlインタラクティブ内から全く同じコマンドを実行すると動作します。ここで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

関連する問題