web-dev-qa-db-ja.com

大文字と小文字を区別するテーブル名を強制する方法は?

私はWindowsでMySQLデータベースに取り組んでいます。

Linux環境に移動する必要があります。 MySQLデータベースには、大文字と小文字を区別する多くのテーブルとストアドプロシージャが含まれています。

データベースをバックアップすると、すべてのテーブル名が小文字になります。したがって、Linuxで復元すると、重複したテーブルとストアドプロシージャを作成できないため、文句を言います。

Linux環境ではMySQL設定にアクセスできないため、大文字と小文字を区別しないモードにMySQL設定を変更できません。

MySQL(v5.x)でWindowsで大文字と小文字を区別するテーブル名を強制的に使用する方法はありますか?

41

これをすべて読んでください: http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html

次に、このシステム変数を[mysqld]のサーバーセクションmy.iniに追加し、mysqlを再起動します。

/my.ini:lower_case_table_names = 2

47
ATorras

この記事をご覧ください- http://dev.mysql.com/doc/refman/5.1/en/identifier-case-sensitivity.html

モード2では、指定した大文字と小文字のテーブルを保存できますが、とにかく、名前の比較では大文字と小文字が区別されず、table1およびTable1 同時に。

8
Devart

残念ながら、WindowsでMySQLをLinuxのように100%動作させる方法はありません。できることは、最小限のVM on Virtual Box または VMware Player with TurnKey-MySQL Appliance .

私の経験では、問題を診断するために、デプロイメント環境に類似した構成でVMを使用すると非常に便利です。

4
Augusto

Windowsでは、ファイルC:\ ProgramData\MySQL\MySQL Server 5.7\my.iniの最後にlower_case_table_names = 2を配置します

4
Evgeny Chashnik

私はこの行を追加し、別のケースの問題を解決します

lower_case_table_names = 1

/etc/my.cnf内

このページからmysql変数 "lower_case_table_names"を設定する方法を確認できます。 https://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_lower_case_table_names

1
Hatem Badawi

このプロパティをlower_case_table_names = 2 to my.iniに追加します

0
Kris