MYSQLでデータベースに権限を与える時に、データベース名に.(ピリオド)や-(ハイフン)を入れているとエラーが出る

スポンサーリンク

ということがわかったのでメモ。
xampp 1.7.3 + phpmyadminだとデータベース名に.や-を入れていても大丈夫でしたが、centos上だとエラーが出た。SQL文はこんな感じ

GRANT ALL PRIVILEGES ON [データベース名].* TO [ユーザ名]@localhost IDENTIFIED BY '[ユーザ名のパスワード]';

検索していると
Forums: 公開討議 – MySQL でハイフン付きのデータベース名で syntax error が発生する – DBViewer Plugin for Eclipse 開発プロジェクト – SourceForge.JPというページがあり

個人的には、実際の業務において
あえて、スキーマ名やテーブル名に
ハイフンを入れることは無いと思っていますが、
それは偏見でしょうか?

SQLを発行する際に、専用のエスケープ文字で
囲んであげないとエラーになるような
命名規則にしてしまうと、開発効率が落ちると
思いますが・・・

との発言がありました。まったくその通り^^;データベースは安定性が最重要なので、名前は英数字のみで十分。さっそくデータベース名を英数字のみにしたら、さくっと成功しました。

これからはDB名にも気をつけようと思った。