2013-08-26 16 views
1

有東西猛砸不喜歡。應該逃避什麼以及如何?猛砸逃逸(MySQL的GRANT ALL特權失敗)

mysql --user=root --password=mypass vsftpd << EOF 
GRANT ALL PRIVILEGES ON `MYUSERNAME\_%`.* TO 'MYUSERNAME'@'%';" 
EOF 

我得到以下錯誤:

-bash: MYUSERNAME_%: command not found 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 'MYUSERNAME'@'%'' at line 1

回答

2

的反引號做命令替換(同$())。嘗試使用在外部級單引號和您的用戶名雙引號和主機名:

mysql --user=root --password=mypass vsftpd 'GRANT ALL PRIVILEGES ON `MYUSERNAME\_%`.* TO "MYUSERNAME"@"%";' 

您可以指示此文檔不引述分隔符字擴展變量,但我不知道這是否適用於命令替代太:

mysql --user=root --password=mypass vsftpd << 'EOF' 
GRANT ALL PRIVILEGES ON `MYUSERNAME\_%`.* TO 'MYUSERNAME'@'%';" 
EOF 
+0

很抱歉,但沒有這些作品:(感謝您嘗試 – user1281991

+0

@ user1281991的:我只是想第二個,這絕對作品在我的編輯後,第一個選項應該工作過(注意報價標記) – knittl

+0

是的!!謝謝。第一個爲我工作,如果我正在做--e'GRANT ALL(etc ...)'.. THX – user1281991