【问题标题】:Change MySql Case sensitivity with phpMyAdmin?使用 phpMyAdmin 更改 MySql 区分大小写?
【发布时间】:2010-10-30 14:07:06
【问题描述】:

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

【问题讨论】:

    标签: c# .net mysql blogengine.net


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

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

          CREATE TABLE be_Settings ( ... )
          

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

          从中吸取的教训是,始终将表名设为小写...

          【讨论】:

          • 要是BlogEngine.Net 遵守这条规则就好了。
          • 我检查过所有表都在使用 InnoDB。我能够使用 phpMyAdmin 重命名所有表,以便他们使用驼峰式,因为 Blogengine.Net 在所有查询中都使用驼峰式
          猜你喜欢
          • 2011-03-24
          • 1970-01-01
          • 2019-12-27
          • 2015-07-07
          • 1970-01-01
          • 2012-11-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多