Linux 上的 MySQL 區分大小寫的表名
將 MySQL 數據庫從 Windows 移動到 Linux 我有一個問題,即在 Linux 上,表的名稱區分大小寫。這是一個問題,因為我正在開發的 Java 應用程序找不到表。
我已經更改了我的
/etc/mysql/my.cnf
文件添加行:
lower_case_table_names=1
但這並沒有改變什麼。
我的伺服器版本是:
5.1.61-0ubuntu0.11.10.1 (Ubuntu)
如何配置 MySQL 以忽略表名中的大小寫?
僅僅改變 lower_case_table_names 設置是不夠的。它需要在您導入數據庫之前完成。
MySQL 5.1 文件列出了在 Windows 和 Linux/UNIX 之間移動的過程。這將確保遵循您想要的強制區分大小寫的規則。查看並驗證您是否以正確的順序執行了這些步驟:
要轉換一個或多個整個數據庫,請在設置 lower_case_table_names 之前轉儲它們,然後刪除數據庫,並在設置 lower_case_table_names 後重新載入它們:
1 - 使用 mysqldump 轉儲每個數據庫:
mysqldump –databases db1 > db1.sql
mysqldump –databases db2 > db2.sql
…對必須重新創建的每個數據庫執行此操作。
2 - 使用 DROP DATABASE 刪除每個數據庫。
3 - 停止伺服器,
lower_case_table_names
在文件[mysqld]
部分設置\etc\mysql\my.cnf
,然後重新啟動伺服器。4 - 重新載入每個數據庫的轉儲文件。因為設置了 lower_case_table_names,所以每個數據庫和表名將在重新創建時轉換為小寫:
mysql < db1.sql
mysql < db2.sql