RDSのエンジンにMySQLを選択する際、データベース名にハイフン(-)は使えない


この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。

株式会社協栄情報クラウド事業部所属のルイスです。
今回は私がAWS-マルチAZWordPressサイト構築練習を構築していく中で得た学びを紹介します。

経緯

上述の環境を構築するなかでAWSコンソールの操作と英数字入力の間違いの修正に多くの時間を費やしました。

特に後者による時間のロスは辛くこれを回避できていたら余った時間をAWSサービスの理解に費やせただろうと反省しています。

概要・目的

今回はいくつかのミスのなかでも解決策が単純だったRDSのデータベース名に関するミスを紹介します。解決策が単純だったとしてもミスの背景にはデータベース由来の理由がありました。

それもあわせて紹介することで些細なミスにも背景があることを皆さんにお伝えし、配慮に値することをお伝えしたいです。AWSサービスは細部まで配慮が行き届いております。

結論

RDSのエンジンにMySQLを選択する際、データベース名にハイフン(-)は使えない

正しい入力方法

間違った入力方法

理由

ハイフン(-)は特殊文字であり、識別子として使用するにはバッククォートで囲む必要があるから。

そしてこれを行うにはEC2インスタンスからMySQLに入り、直接操作する必要があります。

*識別子はここではデータベース名と同義です

参考:MySQL 8.0 リファレンスマニュアル/言語構造/スキーマオブジェクト名

詳細

MySQLの識別子に使える文字には大きく2つの種類があります

  1. 引用符で囲まれていない識別子で許可される文字
    ASCII: [0-9,a-z,A-Z$_] (基本的なラテン文字、0-9 の数字、ドル、下線)
    拡張: U+0080 .. U+FFFF
  2. 引用符で囲まれた識別子で許可される文字
    ASCII: U+0001 .. U+007F
    拡張: U+0080 .. U+FFFF
  3. 上記のいずれにも該当しない例外もあります

ハイフン(-)は2番目の分類に所属します
ハイフンはUnicodeの基本ラテン文字ブロックのコードU+002Dに該当し、正式名称はハイフンマイナスです。

参考:MySQL 8.0 リファレンスマニュアル/言語構造/スキーマオブジェクト名

参考

おわりに

ここまで読んでいただきありがとうございました。

小さいミスにも背景があると知ればミスに費やした時間も決して無駄でなかったと納得できるものではないでしょうか。

この記事が誰かの助けとなれば幸いです。
間違いなどあればぜひご指摘ください。

Last modified: 2023-05-18

Author