我正在开发一个Windows数据库中的MySQL数据库 .
我必须把它移到Linux环境中 . MySQL数据库包含许多CASE SENSITIVE的表和存储过程 .
当我备份我的数据库时,所有表名都被强制为小写,因此当我在Linux中恢复它时,它会抱怨,因为你不能制作重复的表和存储过程 .
我无法访问linux环境中的MySQL配置,因此我无法将MySQL设置更改为不区分大小写的模式 .
有没有办法强制MySQL(v5.x)在Windows中使用区分大小写的表名?
不幸的是,没有办法让Windows上的MySQL表现得像Linux一样100% . 你可以做的是在Virtual Box或VMware player上使用TurnKey - MySQL Appliance运行最小的VM .
根据我的个人经验,我发现使用具有类似于部署环境的配置的VM来诊断问题非常有用 .
在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
将此属性添加到 lower_case_table_names=2 至 my.ini
阅读全部内容:http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html
然后将此系统变量添加到 my.ini 的服务器部分 [mysqld] 并重新启动mysql:
my.ini
[mysqld]
/my.ini:lower_case_table_names = 2
看看这篇文章 - http://dev.mysql.com/doc/refman/5.1/en/identifier-case-sensitivity.html
模式2允许存储具有指定字母的表格,但无论如何,名称比较赢得了't be case sensitive and you won' t能够同时存储 table1 和 Table1 .
table1
Table1
6 回答
不幸的是,没有办法让Windows上的MySQL表现得像Linux一样100% . 你可以做的是在Virtual Box或VMware player上使用TurnKey - MySQL Appliance运行最小的VM .
根据我的个人经验,我发现使用具有类似于部署环境的配置的VM来诊断问题非常有用 .
在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
将此属性添加到 lower_case_table_names=2 至 my.ini
阅读全部内容:http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html
然后将此系统变量添加到
my.ini
的服务器部分[mysqld]
并重新启动mysql:看看这篇文章 - http://dev.mysql.com/doc/refman/5.1/en/identifier-case-sensitivity.html
模式2允许存储具有指定字母的表格,但无论如何,名称比较赢得了't be case sensitive and you won' t能够同时存储
table1
和Table1
.