私はWindowsでMySQLデータベースに取り組んでいます。
Linux環境に移動する必要があります。 MySQLデータベースには、大文字と小文字を区別する多くのテーブルとストアドプロシージャが含まれています。
データベースをバックアップすると、すべてのテーブル名が小文字になります。したがって、Linuxで復元すると、重複したテーブルとストアドプロシージャを作成できないため、文句を言います。
Linux環境ではMySQL設定にアクセスできないため、大文字と小文字を区別しないモードにMySQL設定を変更できません。
MySQL(v5.x)でWindowsで大文字と小文字を区別するテーブル名を強制的に使用する方法はありますか?
これをすべて読んでください: http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html
次に、このシステム変数を[mysqld]
のサーバーセクションmy.ini
に追加し、mysqlを再起動します。
/my.ini:lower_case_table_names = 2
この記事をご覧ください- http://dev.mysql.com/doc/refman/5.1/en/identifier-case-sensitivity.html
モード2では、指定した大文字と小文字のテーブルを保存できますが、とにかく、名前の比較では大文字と小文字が区別されず、table1
およびTable1
同時に。
残念ながら、WindowsでMySQLをLinuxのように100%動作させる方法はありません。できることは、最小限のVM on Virtual Box または VMware Player with TurnKey-MySQL Appliance .
私の経験では、問題を診断するために、デプロイメント環境に類似した構成でVMを使用すると非常に便利です。
Windowsでは、ファイルC:\ ProgramData\MySQL\MySQL Server 5.7\my.iniの最後にlower_case_table_names = 2を配置します
私はこの行を追加し、別のケースの問題を解決します
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
このプロパティをlower_case_table_names = 2 to my.iniに追加します