【注意】 この記事は過去に別サイトで執筆したものを再掲載したものです。 内容が古くなっていて現在では適用できない場合や、もっと良い方法が出来ている場合があります。 |
OSによってファイル名の大文字小文字の扱いがと異なる。
たとえばLinuxは、大文字と小文字を明確に区別する。abcとAbcは別のファイルとして扱われる。
一方Windowsは、大文字と小文字を区別してファイル名を保持するが、abcとAbcは同じファイルとして扱われる。
MySQLのデータベース名やテーブル名の認識は、初期状態でOSのファイル名の扱いに準拠する設定となっている。
システム変数 lower_case_table_names
に 0~2 の値を設定する。
- 0 .. 大文字小文字を区別する
- 1 .. 大文字小文字を区別しない(テーブル名をすべて小文字にして格納)
- 2 .. 大文字小文字を区別しない(テーブル名をそのまま格納)
Linuxは標準で0、windowsは1、が設定されている。
そのためOSの異なるMySQL間で移行する場合は注意が必要である。
設定は、my.cnf (linux) / my.ini (windows) に下記のように記載する。
[mysqld]
lower_case_table_names = 1
サービスを再起動で設定内容が反映される。
One Reply to “[mysql]テーブル名と大文字小文字”
[…] 参考:https://www.komina.info/archives/571 […]