我正在使用Windows中的MySQL数据库。
我必须把它移到Linux环境中。 MySQL数据库包含许多表和存储过程,这些表是CASE SENSITIVE。
当我备份我的数据库时,所有表名都被强制为小写,所以当我在Linux中恢复它时会抱怨,因为你不能制作重复的表和存储过程。
我无法访问linux环境中的MySQL配置,因此我无法将MySQL设置更改为不区分大小写的模式。
有没有办法强制MySQL(v5.x)在Windows中使用区分大小写的表名?
答案 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允许存储具有指定字母的表格,但无论如何,名称比较不区分大小写,您将无法同时存储table1
和Table1
。< / p>
答案 2 :(得分:4)
不幸的是,没有办法让Windows上的MySQL表现得像Linux一样100%。您可以做的是使用Virtual Box在VMware player或TurnKey - 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