用phpMyAdmin更改MySql区分大小写?

时间:2009-06-02 04:23:32

标签: c# .net mysql blogengine.net

我正在运行Blogengine.Net,并注意到这些表都是小写的(表名为be_settings),但很多查询都是用mixcase编写的(Select *来自be_Settings)。如果您的MySql实例在Windows上运行或设置为Windows的可容性,则此方法可以正常工作。我收到错误,因为我的托管服务提供商MySql实例区分大小写。我可以更改设置以通过phpMyAdmin修复此错误吗?如果我不需要,我不想删除所有代码并修复BlogEngine.Net。

4 个答案:

答案 0 :(得分:3)

MySQL表名中的区分大小写特定于OS。 MySQL数据存储在文件中,这些文件受操作系统强制执行的任何规则的约束。例如,Linux是区分大小写的。

有一个可以操作的变量'lower_case_table_names',但似乎你必须重新创建所有表。

http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html

答案 1 :(得分:1)

您所追求的设置是lower_case_table_names(设置为1或2)。 不幸的是,这需要在MySQL守护进程启动时设置,而不是通过phpmyadmin。您能否请求您的托管服务提供商为您执行此操作?

答案 2 :(得分:1)

如果您正在尝试为BlogEngine.Net解决此问题,您可以轻松地重命名所有表以使用CamelCase,因为BlogEngine.Net中的所有查询都是使用CamelCase编写的。

答案 3 :(得分:0)

如何创建数据库?您可能会发现创建表的查询使用了正确的大小写:

CREATE TABLE be_Settings ( ... )

只是myisam表存储为文件系统中的文件,因为它在Windows上,它们只是转换为小写。如果你在linux系统上从这些查询创建数据库,你会发现所有的表都是正确的。

这样做的教训是始终将表名称设为小写......