2016-09-01 19 views
0

mysqlユーザーのデータベースに権限を与えるときに問題が発生しました。私はそれがデータベース名の特別な文字のためだと思う。mysqlデータベースに権限を付与する際に特別な文字が発生する

この1つは働いている:

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

1が動作していないこと:

/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引数の周りの単一引用符を使用していることを確認してくださいを参照してください。また、クエリ全体を一重引用符で囲むために、ユーザ名の引用符を二重引用符に変更しました。

関連する問題