MySQL表名大小写敏感

变量lower_case_table_names

为什么本地开发没问题,但是测试环境就提示表不存在呢?因为本地的windows开发环境,默认是大小写不敏感。而测试环境的linux是敏感的。
本地windows我们执行命令,查看自己电脑中的mysql系统变量可以看到:

1、进入mysql命令: mysql -uroot -p

2、输入你的密码:xxxx

# 进入mysql命令行 执行以下任一语句查看:
show variables like '%lower_case_table_names%';
select @@lower_case_table_names;

 

 值为1,表示是大小写不敏感,而linux环境的mysql是0.

 更改数据库参数文件my.cnf
 在mysqld下 添加或修改 lower_case_table_names = 1
 之后重启数据库

 

lower_case_table_names=0 表名存储为给定的大小和比较是区分大小写的
lower_case_table_names = 1 表名存储在磁盘是小写的,但是比较的时候是不区分大小写
lower_case_table_names=2 表名存储为给定的大小写但是比较的时候是小写的
unix,linux下lower_case_table_names默认值为 0 .Windows下默认值是 1 .Mac OS X下默认值是 2

 
posted @ 2021-05-13 18:06  pxuan  阅读(281)  评论(0编辑  收藏  举报