有谁知道如何在我的表名中保留大小写(使用phpMyAdmin,最新的xampp发行版,赢得10)。难道是因为xampp使用的是MariaDB而不是mySQL?
表名将全部重写为小写。
在phpMyAdmin站点上阅读以使用保留大小写的情况,我应该添加:
'set-variable=lower_case_table_names=0'
这从错误消息开始停止了mySQL:
[ERROR] c:\xampp\mysql\bin\mysqld.exe: unknown variable 'set-variable=lower_case_table_names=0'
然后,在这里阅读答案后,我了解到我应该尽可能地使用lower_case_table_names=0
,my.ini
并且仍然遇到相同的错误。
然后,我花了20分钟来尝试确定我的set-variable=lower_case_table_names=0
位置。(认为它必须被缓存或复制或其他。)
无奈之下,我删除了lower_case_table_names=0
,错误消失了。我放回去并得到了[ERROR] c:\xampp\mysql\bin\mysqld.exe: unknown variable 'set-variable=lower_case_table_names=0'
错误。IE,它们似乎是错误报告翻译的别名。有点恼人。
您应该更仔细地阅读文档,特别是标识符区分大小写部分。
在MySQL中,数据库与data目录中的目录相对应。数据库中的每个表都对应于数据库目录中的至少一个文件(可能还有更多文件,具体取决于存储引擎)。触发器也对应于文件。因此,基础操作系统的区分大小写在数据库,表和触发器名称的区分大小写中起作用。这意味着这些名称在Windows中不区分大小写,但是在大多数Unix版本中都区分大小写。
值含义
0表名和数据库名使用CREATE TABLE或CREATE DATABASE语句中指定的字母大小写存储在磁盘上。名称比较区分大小写。如果您在文件名不区分大小写的系统(例如Windows或OS X)上运行MySQL,则不应将此变量设置为0。如果在不区分大小写的文件系统上使用--lower-case-table-names = 0将此变量强制为0,并使用不同的字母大写字母访问MyISAM表名,则可能导致索引损坏。1表名以小写形式存储在磁盘上,名称比较不区分大小写。MySQL在存储和查找时将所有表名转换为小写。此行为也适用于数据库名称和表别名。2表名和数据库名使用CREATE TABLE或CREATE DATABASE语句中指定的字母大小写存储在磁盘上,但是MySQL在查找时将它们转换为小写。名称比较不区分大小写。这仅适用于不区分大小写的文件系统!InnoDB表名以小写形式存储,与lower_case_table_names = 1相同。
总结一下:在Windows上,您不应该将lower_case_table_names设置为0。如果要在Windows上保留表名的字母大小写,请将Lower_case_table_names设置为2。
在使用系统变量部分解释了如何设置各种方式的系统变量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句