如果系统不区分大小写,则两个表名称相同

时间:2014-02-23 18:45:19

标签: mysql windows import wamp case-insensitive

所以,我一直在开发一个项目。到目前为止,我一直使用Windows 7使用虚拟VirtualBox服务器在Linux下工作。现在我想在Windows 8机器下工作,而不必为虚拟Linux机器分配内存。

项目使用MySQL数据库并将其导出,然后尝试将其导入我的Windows环境。显然,分别使用Messagemessage的名称创建了一些旧表。这不会在我的虚拟Linux服务器和实时Linux服务器上造成任何问题,因为表名是区分大小写的,因此对于表有两个相似的名称是完全有效的,即Messagemessage。但是,在Windows 8下,使用wamp,我无法导入数据库。

我一直在尝试在my.ini中设置一个值,如下所示:

lower_case_table_names=2

然而,当我尝试再次导入数据库时​​,我的尝试没有成功,因为Message的表名似乎又与message的表名冲突了。我希望该设置允许我创建两个表,一个名为Message,另一个名称为message。但是,设置根本没有帮助(是的,我已经重新启动了mysql服务和wamp,但没有运气,我根本无法导入数据库)。我还检查了lower_case_table_names=2的设置是否已应用,是,已应用。但是,我仍然无法在数据库中创建Messagemessage表。在我绝望的交响曲中,我尝试了

的设定
lower_case_table_names=0

,但也没有运气。

所以,它是我,或者这个设置不起作用(但是,它被标记为许多类似问题的解决方案)。 MySQL Server version is 5.5.24

所以,问题是:我可以在wamp使用的MySQL服务器中解析导入具有表名的数据库,例如message和Message,如果是,怎么做?

如果没有解决方案(至少在我的最后),我将不得不考虑两种可能的解决方案:

  1. 在我的新笔记本电脑上安装VirtualBox(叹气)并使用与旧电脑相同的风格在此电脑上工作。

  2. 修改数据库中某个表的名称并修改项目中的所有引用,部署它然后然后导出和导入数据库,而不同时使用Message和{{ 1}}表。

  3. 我知道在同一个数据库中创建消息和Message表并不明智,但我以这种方式继承了项目。如果没有易于解决的解决方案,我有两种替代解决方案,但如果有一个简单的修改设置的解决方案,我真的很感兴趣。

    提前谢谢大家。

1 个答案:

答案 0 :(得分:0)

我已通过以下方式解决了这个问题:

  1. 创建名为Messages

  2. 的表
  3. 将消息中的所有记录插入消息

  4. 删除讯息

  5. 修改对Message的所有引用,以便它们现在引用消息

  6. 如果有人遇到这个问题,不要等待答案,我已经等了14个小时,所以你也会浪费你的时间。相反,咬紧牙关并使用我的想法,或使用虚拟Linux机器来解决您的问题。