我正在使用Windows的MySQL数据库。
我必须将其移植到Linux环境中。 MySQL数据库包含很多表和存储过程,这些表是敏感的。
当我备份我的数据库,所有的表名都强制小写,所以当我在Linux中恢复它抱怨,因为你不能重复表和存储过程。
我没有在Linux环境中访问MySQLconfiguration,所以我不能将MySQL设置更改为不区分大小写的模式。
有没有办法强制MySQL(v5.x)在Windows中使用区分大小写的表名?
阅读所有内容: 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的表,但无论如何,名称比较不区分大小写,您将无法同时存储table1
和table1
。
不幸的是,在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