解决mysql8.0 lower_case_table_names 大小写敏感设置问题
在MySQL 8.0中,lower_case_table_names
参数用于指定表名存储和比较的大小写敏感性。在Unix、Linux和Mac OS X系统上,默认值是0
(表名存储为给定的大小写,比较是大小写敏感的)。在Windows上,默认值是1
(表名存储为小写,比较不区分大小写)。
如果你需要在大小写敏感的文件系统上运行MySQL并且你想要保持表名的大小写,你可以设置lower_case_table_names
为0
。
注意: 这个参数只能在初始化数据目录的时候设置,并且在MySQL服务器启动之前。
要设置这个参数,你需要在初始化数据目录时,在命令行中添加--lower-case-table-names=0
参数。例如:
mysqld --initialize --lower-case-table-names=0
如果你已经有了数据目录,并且正在使用,那么你不能改变这个设置。如果你需要改变这个设置,你必须在新的数据目录中初始化一个新的MySQL实例。
在已经初始化的数据目录上,你不能直接设置这个参数。你需要停止MySQL服务,然后在启动时添加该参数,或者在配置文件(通常是my.cnf
或my.ini
)中设置这个参数,并且在启动MySQL服务之前编辑或创建配置文件。
例如,在my.cnf
文件中设置:
[mysqld]
lower_case_table_names=0
然后,你可以正常启动MySQL服务。
请注意,一旦你改变了这个设置,所有的表名都将按照你设置的大小写存储,并且将来的比较会区分大小写。如果你的应用程序依赖于之前的不区分大小写的行为,那么你可能需要修改应用程序代码以适应新的大小写敏感性。
评论已关闭