如何强制区分大小写的表名?

时间:2011-06-06 07:02:38

标签: mysql windows case-sensitive

我正在使用Windows中的MySQL数据库。

我必须把它移到Linux环境中。 MySQL数据库包含许多表和存储过程,这些表是CASE SENSITIVE。

当我备份我的数据库时,所有表名都被强制为小写,所以当我在Linux中恢复它时会抱怨,因为你不能制作重复的表和存储过程。

我无法访问linux环境中的MySQL配置,因此我无法将MySQL设置更改为不区分大小写的模式。

有没有办法强制MySQL(v5.x)在Windows中使用区分大小写的表名?

6 个答案:

答案 0 :(得分:46)

阅读所有内容:http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html

然后将此系统变量添加到[mysqld]的服务器部分my.ini并重新启动mysql:

  

/my.ini:lower_case_table_names = 2

答案 1 :(得分:8)

查看这篇文章 - http://dev.mysql.com/doc/refman/5.1/en/identifier-case-sensitivity.html

模式2允许存储具有指定字母的表格,但无论如何,名称比较不区分大小写,您将无法同时存储table1Table1。< / p>

答案 2 :(得分:4)

不幸的是,没有办法让Windows上的MySQL表现得像Linux一样100%。您可以做的是使用Virtual BoxVMware playerTurnKey - MySQL Appliance上运行最小的虚拟机。

根据我的个人经验,我发现使用配置类似于部署环境的VM来诊断问题非常有用。

答案 3 :(得分:4)

在Windows上将lower_case_table_names = 2放在文件末尾 C:\ ProgramData \ MySQL \ MySQL Server 5.7 \ my.ini

答案 4 :(得分:1)

我添加这一行,它解决了不同的案例问题

的lower_case_table_names = 1

/etc/my.cnf

你可以看到如何设置mysql变量&#34; lower_case_table_names&#34;形成此页面: https://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_lower_case_table_names

答案 5 :(得分:0)

将此属性添加到 lower_case_table_names = 2 my.ini