MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
4、变量名也是严格区分大小写的;
MySQL在Windows下都不区分大小写。
所以在不同操作系统中为了能使程序和数据库都能正常运行,最好的办法是在设计的时候都转为小写,但是如果在设计的时候已经规范化大小写了,那么在Windows环境下只要对数据库的配置做下改动就行了,具体操作如下:
在MySQL的配置文件中my.ini[mysqld]中增加一行
lower_case_table_names=1
参数解释:
0:区分大小写
1:不区分大小写
在MySQL中,数据库和表对就于那些目录下的目录和文件。因而,操作系统的敏感性决定数据库和表命名的大小写敏感。这就意味着数据库和表名在Windows中是大小写不敏感的,而在大多数类型的Unix系统中是大小写敏感的。
奇怪的是列名与列的别名在所有的情况下均是忽略大小写的,而表的别名又是区分大小写的。
要避免这个问题,你最好在定义数据库命名规则的时候就全部采用小写字母加下划线的组合,而不使用任何的大写字母。
或者也可以强制以-Olower_case_table_names=1参数启动mysqld(如果使用--defaults-file=...\my.cnf参数来读取指定的配置文件启动mysqld的话,你需要在配置文件的[mysqld]区段下增加一行lower_case_table_names=1)。这样MySQL将在创建与查找时将所有的表名自动转换为小写字符(这个选项缺省地在Windows中为1,在Unix中为0。从MySQL4.0.2开始,这个选项同样适用于数据库名)。
当你更改这个选项时,你必须在启动mysqld前首先将老的表名转换为小写字母。
换句话说,如果你希望在数据库里面创建表的时候保留大小写字符状态,则应该把这个参数置0:lower_case_table_names=1。否则的话你会发现同样的sqldump脚本在不同的操作系统下最终导入的结果不一样(在Windows下所有的大写字符都变成小写了)。
分享到:
相关推荐
MySql表名大小写的问题.txt
问题引发: 假设现在有 表A 和 表B(A和B分别为表名),具体设计如下: 其中,表B的 aid 是外键,关联...上网找,说是因为 MYSQL 数据库大小写敏感的问题: 查看数据库大小写敏感设置的语句: show variables like '
linux下mysql默认是要区分表名大小写的。mysql是否区分大小写设置是由参数lower_case_table_names决定的,其中: 1)lower_case_table_names = 0 区分大小写(即对大小写不敏感),默认是这种设置。这样设置后,...
今天郁闷死了,在LINUX下调一个程序老说找不到表,但是我明明是建了表的,在MYSQL的命令行下也可以查到,为什么程序就找不到表呢?
Mysql查询操作 MySql下实现查询表名不区分大小写
将全局变量 lower_case_table_names 设置为1 实验: 1.lower_case_tables_name=0的情况(Linux默认) 直接启动mysql,在mytest库中新建表MyTable和mytable mysql> use mytest; mysql> create table MyTable(id int ...
flowable 6.3.0 ZIP包,包含了文档、lib包,5个War包flowable-admin.war,flowable-idm.war,flowable-modeler.war,flowable-rest.war,flowable-task.war
今天小编就为大家分享一篇关于MySQL数据库大小写敏感的问题,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
一、1 CREATE TABLE NAME(name VARCHAR(10)); 对这个表,缺省情况下,... MySql默认查询是不区分大小写的,如果需要区分他,必须在建表的时候,Binary标示敏感的属性. 代码如下: CREATE TABLE NAME( name VARCHA
mysql设置不区分大小写 windows下 到安装mysql的目录,修改my.ini文件 在文件最后一行加上下面一句话 lower_case_table_names=1 说明 0:区分大小写,1:不区分大小写 效果如下 [mysqld] port = 3306 basedir=F...
编辑MySQL安装目录下的my.ini 文件,在[mysqld]节下 添加 lower_case_table_names=0 (备注:为0时大小写敏感,为1时大小写不敏感,默认为1),可以实现MySql按照建表Sql语句的大小写状态来定义表名
修改MySql Server安装目录下的 my.ini 文件,在mysqld节下加入下面一行 set-variable=lower_case_table_names=0 (0:大小写敏感;1:大小写不敏感)最后重启一下MySql服务即可。
这就意味着数据库和表名在 Windows 中是大小写不敏感的,而在大多数类型的 Unix 系统中是大小写敏感的。一个特例是 Mac OS X,当缺省的 HFS+ 文件系统使用时。然而 Mac OS X 还支持 UFS 卷,那些在 Mac OS X 是大小...
MYSQL对大小写敏感 见字如面,见标题知内容。你有遇到过因为MYSQL对大小写敏感而被坑的体验吗? 之前看过阿里巴巴Java开发手册,在MySql建表规约里有看到: 【强制】表名、字段名必须使用小写字母或数字 , 禁止...
Quartz定时任务持久化数据表 ,mysql数据库,方便动态配置定时任务,各字段都有注释,简单的crud即可使用
介绍了Linux系统MySQL忘记密码,重置密码,忽略表名、列名大小写的方法,需要的朋友可以参考下