将MySQL数据库从Windows移到Linux,我遇到的问题是,在Linux上,表的名称是区分大小写的。这是一个问题,因为我正在开发的Java应用程序找不到表。
我已经更改了我的/etc/mysql/my.cnf文件,添加了行:
lower_case_table_names=1
但这并没有改变什么。
我的服务器版本是:5.1.61-0ubuntu0.11.10.1 (Ubuntu)
如何将MySQL配置为忽略表名中的大小写?
发布于 2012-04-07 10:21:09
仅仅更改lower_case_table_names设置是不够的。这需要在导入数据库之前完成(S)。
MySQL 5.1文档列出了在Windows和Linux/UNIX之间移动的过程。这将确保执行区分大小写的所需规则得到遵守。查看并验证您是否按照正确的顺序执行了这些步骤:
若要转换一个或多个完整的数据库,请在设置lower_case_table_names之前将其转储,然后删除数据库,并在设置lower_case_table_names: 1后重新加载它们--使用mysqldump转储每个数据库: mysqldump -- db1 > db1.sql mysqldump --数据库db2 > db2.sql .对必须重新创建的每个数据库执行此操作。2-使用DROP数据库删除每个数据库。3-停止服务器,在
lower_case_table_names文件的[mysqld]部分设置\etc\mysql\my.cnf,并重新启动服务器。4-释放每个数据库的转储文件。由于设置了lower_case_table_names,每个数据库和表名将在重新创建时转换为小写: mysql < db1.sql mysql < db2.sql
发布于 2016-06-29 05:39:33
文件在etc/my.cnf中找到这个# MySQL服务器米舍尔德并设置lower_case_table_names =1
没有必要删除db。它的工作原理,所以首先检查一下这个。原因是lower_case_table_names =1作为Windows的默认值。
https://dba.stackexchange.com/questions/16198
复制相似问题