跨平台遷移或開發/生產環境 OS 不一致時,常因大小寫導致「Table doesn't exist」錯誤。
lower_case_table_names/etc/my.cnf(或 /etc/mysql/my.cnf)。[mysqld] 區段新增:lower_case_table_names = 1systemctl restart mysqld 或 service mysql restart。| 值 | 行為 | 適用場景 |
|---|---|---|
| 0 | 區分大小寫,按建表時大小寫存儲 | Linux 生產環境(預設) |
| 1 | **不區分**,儲存為小寫,比較時轉小寫 | Windows/macOS、跨平台一致性需求 |
| 2 | 按建表大小寫存儲,但比較時轉小寫 | 極少用,僅特定遷移場景 |
mysqldump --lower-case-table-names=1 ...SHOW VARIABLES LIKE 'lower_case_table_names';
CREATE TABLE TestCase (id INT);
SELECT * FROM testcase; -- 應成功
跨平台專案建議統一設為 1,並在初始化階段確定。若生產環境已運行,變更成本極高,請在架構設計階段即納入規劃。