前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >设置MySQL数据库不区分大小写

设置MySQL数据库不区分大小写

作者头像
浩Coding
发布于 2019-07-03 07:18:35
发布于 2019-07-03 07:18:35
17.2K00
代码可运行
举报
文章被收录于专栏:浩Coding浩Coding
运行总次数:0
代码可运行

我们大家可能都碰到过这种情况:在Linux下,MySQL的表名区分大小写,而在Windows下是不区分,从Windows下导出的数据脚本中使用的是小写,而Hibernate生成的SQL中表名是大写的,所以查不出数据。如下,我的一个Windows下的项目移植到Linux环境中就因为MySQL严格区分大小写问题报错:

这个时候怎么办呢,显然改程序是不行的,时间上也不允许,所以只能设置MySQL数据库不区分大小写了,大家看以下步骤:

1、查询MySQL是否设置了区分大小写

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
show variables like "%case%";

其中lower_case_table_names代表了0是区分大小写; 1是不区分大小写。显然我这个MySQL是区分大小写的。

2、解决方法

Ubuntu环境下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim /etc/mysql/my.cnf

在这个文件中的[mysqld]的后面加lower_case_table_names=1

注意:一定要在mysqld下面加上这个语句,别的下面不起作用!!!

然后重启MySQL环境即可。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
一、启动方式

  1、使用 service 启动:service mysqld start

  2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start

  3、使用 safe_mysqld 启动:safe_mysqld&

二、停止

  1、使用 service 启动:service mysqld stop

  2、使用 mysqld 脚本启动:/etc/inint.d/mysqld stop

  3、mysqladmin shutdown

三、重启

  1、使用 service 启动:service mysqld restart

  2、使用 mysqld 脚本启动:/etc/inint.d/mysqld restart

二 其他环境下

如果上面设置的不行,可以试试以下路径:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
echo "lower_case_table_names=1" >> /etc/mysql/mysql.conf.d/mysqld.cnf

即寻找/etc/mysql/mysql.conf.d/mysqld.cnf这个文件,后面加上lower_case_table_names=1即可。

更改设置之后的效果:

已经不区分大小写了:

拓展知识

MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:

1、数据库名与表名是严格区分大小写的;

2、表的别名是严格区分大小写的;

3、列名与列的别名在所有的情况下均是忽略大小写的;

4、变量名也是严格区分大小写的;

MySQL在Windows下都不区分大小写。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 浩Coding 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档