资讯

展开

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

作者:快盘下载 人气:

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

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

SQL

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

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

show variables like "%case%";

Linux

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

2、解决方法

一 Ubuntu环境下:

vim /etc/mysql/my.cnf

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

Linux

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

SQL

然后重启MySQL环境即可。

一、启动方式

  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

SQL

二 其他环境下

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

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即可。

更改设置之后的效果:

云数据库 SQL Server

已经不区分大小写了:

数据库

拓展知识

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

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

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

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

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

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

加载全部内容

相关教程
猜你喜欢
用户评论
快盘暂不提供评论功能!