mysqladmin で hoge-hoge という名前の DB 作って、そいつを mysql 上で扱おうとしたらエラーが・・・
mysql> GRANT ALL ON hoge-hoge.* TO dbuser@localhost;
ERROR 1064 (42000): 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 '-hoge.* TO dbuser@localhost' at line 1
どうも、ハイフンが式として判断されてるのか?コマンドの始まりと判断されているのか?・・・と思い、シングルクォーテーションで囲ってみたけど、
ERROR 1064 (42000): 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 ''hoge-hoge'' at line 1
やっぱり駄目。同じエラーだなあ・・・
\ でエスケープしてみたら?
ERROR:
Unknown command '\-'.
ERROR 1064 (42000): 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 '\-hoge' at line 1
やっぱり駄目。つーか、エラーが増えてるし。(^^;
結局、バッククォーテーションで囲めばよかった。
mysql> GRANT ALL ON `hoge-hoge.*` TO dbuser@localhost;
こんな感じ。
そうかあ。MySQL じゃ、ハイフンを含んだ DB名を使うときは常にバッククォーテーションで囲まないと駄目なのか。ハイフンを含んだ DB名を使うのって今回が初めてなので知らんかった。(^^;
いちいち面倒なので、ハイフン使うのやめて、DBの名前を hoge_hoge に変えちゃった。
これが一番正解。(笑)