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

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

我必须将其移植到Linux环境中。 MySQL数据库包含很多表和存储过程,这些表是敏感的。

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

我没有在Linux环境中访问MySQLconfiguration,所以我不能将MySQL设置更改为不区分大小写的模式。

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

Solutions Collecting From Web of "如何强制区分大小写的表名称?"

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

然后将这个系统变量添加到my.ini的底部并重新启动mysql:

/my.ini:lower_case_table_names = 2

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

模式2允许存储具有指定lettercase的表,但无论如何,名称比较不区分大小写,您将无法同时存储table1table1

不幸的是,在Windows上使MySQL不能像Linux一样运行。 你可以做什么,是用TurnKey – MySQL Appliance在Virtual Box或VMware播放器上运行一个最小的虚拟机。

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

在windows上把lower_case_table_names = 2放在文件C:\ ProgramData \ MySQL \ MySQL server 5.7 \ my.ini的末尾

我添加这一行,它解决了不同的情况下的问题

的lower_case_table_names = 1

在/etc/my.cnf中

你可以看到如何从这个页面设置mysql变量“lower_case_table_names”: https : //dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_lower_case_table_names

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