【MySQL】テーブル名(識別名)の大小区別
MySQLを使ったアプリ改修を行っていた所、テーブル名の大小区別が開発機(Windows)と本番機(Linux)では異なっていたので、調べてみた。
まずMySQLをデフォルトでインストールすると、OSによってテーブル名の大文字・小文字の区別の扱いが異なる。
そこで、大文字・小文字の区別をさせるための設定として、「lower_case_table_names」という項目の設定を「0」にすると大文字・小文字が区別されるようになる。
現在の設定確認をするには、以下SQLを実行して確認をしてほしい。
show variables where variable_name='lower_case_table_names';
設定値は1~3まであるようで、詳細はMySQLのリファレンスマニュアルを参照してほしい。
https://dev.mysql.com/doc/refman/8.0/ja/identifier-case-sensitivity.html
- 0:大文字・小文字区別する
- 1:大文字・小文字区別しない(テーブル名を全て小文字にして格納)
- 2:大文字・小文字区別しない(テーブル名をそのまま格納)
Linuxは標準で0、Windowsは標準で1が設定されているので、
Linuxの場合は「my.conf」、Windowsの場合は「my.ini」に下記のように記載する。
今回はLinuxの設定に合わせたいので、「0」とする。
[mysqld] lower_case_table_names = 0
設定変更後はサービスの再起動を行い、再度以下SQLを実行し反映されているか確認を行う。
show variables where variable_name='lower_case_table_names';
ディスカッション
コメント一覧
まだ、コメントがありません