2016-09-01 70 views
0

我試圖通過t向mysql用戶授予數據庫特權時遇到了問題。我認爲這是因爲數據庫名稱中的特殊字符。在mysql數據庫授予特權時出現特殊字符問題

這一個工作:

/usr/bin/mysql -uroot -pXz5eaCqwvsT0pAr0gsf0tg1a -e "GRANT ALL PRIVILEGES ON dev_52000_nycny.* TO 'wp_j-5-1-5_nycny'@localhost" 

,一個是不工作:

/usr/bin/mysql -uroot -pXz5eaCqwvsT0pAr0gsf0tg1a -e "GRANT ALL PRIVILEGES ON dev_j-5-1-5_nycny.* TO 'wp_j-5-1-5_nycny'@localhost" 

我已經試過幾個組合,但沒有運氣:

/usr/bin/mysql -uroot -pXz5eaCqwvsT0pAr0gsf0tg1a -e "GRANT ALL PRIVILEGES ON 'dev_j-5-1-5_nycny'.* TO 'wp_j-5-1-5_nycny'@localhost" 

/usr/bin/mysql -uroot -pXz5eaCqwvsT0pAr0gsf0tg1a -e "GRANT ALL PRIVILEGES ON dev_j\-5\-1\-5_nycny.* TO 'wp_j-5-1-5_nycny'@localhost" 

/usr/bin/mysql -uroot -pXz5eaCqwvsT0pAr0gsf0tg1a -e "GRANT ALL PRIVILEGES ON 'dev_j\-5\-1\-5_nycny'.* TO 'wp_j-5-1-5_nycny'@localhost" 

我該怎麼辦?

回答

1

MySQL使用反引號引用包含特殊字符的數據庫,表名和列名。見When to use single quotes, double quotes, and backticks in MySQL

/usr/bin/mysql -uroot -pXz5eaCqwvsT0pAr0gsf0tg1a -e 'GRANT ALL PRIVILEGES ON `dev_j-5-1-5_nycny`.* TO "wp_j-5-1-5_nycny"@localhost` 

確保您周圍使用-e參數單引號,因爲反引號有特殊意義的外殼時,他們的雙引號中的字符串內。我還將用戶名引號改爲雙引號,以便在整個查詢中使用單引號。