我有两个数据库,一个在 Windows 服务器上,一个在 Linux 服务器上,我将数据库移到了 Linux 服务器上,但是我遇到了一个问题,在 Windows 上,当我选择示例时
SELECT * FROM tabledata
工作得很好。
但在 Linux 上它不起作用,因为原始表名是tableData
有什么方法可以将 mysql 配置为不区分大小写?
答案1
这是跨平台设计失败的典型例子。MySQL 文档中关于这一点:
底层操作系统的大小写敏感性会影响数据库和表名的大小写敏感性。这意味着在 Windows 中数据库和表名不区分大小写,而在大多数 Unix 中则区分大小写。
幸运的是,lower_case_table_names 配置指令,当设置为 2 时,将禁用区分大小写的比较。
答案2
为什么不直接重命名该表?
ALTER TABLE tableData RENAME TO tabledata;