LINUX下mysql的大小写是否区分设置

LINUX下mysql的大小写是否区分设置,第1张

具体 *** 作如下:

一、linux中mysql大小写详情:

1、数据库严格区分大小写

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

3、表的别名严格区分大小写

4、变量名严格区分大小写

5、列名在所有的情况下均忽略大小写

6、列的别名在所有的情况下均忽略大小写

二、设置mysql表名不区分大小写

1、切换到root用户

$

su

-

root

2、修改/etc/my.cof配置文件,

#

sed

-i

'/\[mysqld\]/a\lower_case_table_names=1'

/etc/my.cnf

lower_case_table_names参数详解:

0:区分大小写

1:不区分大小写

3、重启mysql

#

service

mysqld

restart

mysql数据库名和表名的大小写敏感说明

:mysql中的数据库名和表名和 *** 作系统有关,在windows *** 作系统中,不区分大小写,在unix

,linux *** 作系统中,是区分大小写的。其实可以到mysql存放数据的data目录下进行查看,可以知道其实一个数据库是对应表,一张表是对应一个

表名+.frm的文件

由于在windows *** 作系统中,文件名和目录名是不区分大小写的,

所以mysql数据库名和表名在windows下是大小写不敏感的,而unix,linux则不然。

下面是mysqlmanual原文说明:

in

mysql,

databases

and

tables

correspond

to

directories

and

files

within

those

directories.

consequently,

the

case

sensitivity

of

the

underlying

operating

system

determines

the

case

sensitivity

of

database

and

table

names.

this

means

database

and

table

names

are

case

sensitive

in

unix

and

case

insensitive

in

windows.

列名的大小写说明:

mysql默认的设置或是对整个库的设置

是否区分大小写和校对规则有关,默认设的规则是大小写不敏感的。

show create table如果看到collate是ci结尾,那么就是不区别的,如果cs或bin结尾,就是区别的。

如果建表的时候选择的是区别大小写的规则而查询的时候又暂时不想区别,

可以用类似

WHERE column_name COLLATE latin1_general_ci = 'xxx'

的写法改变查询使用的校对规则


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6122055.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-15
下一篇 2023-03-15

发表评论

登录后才能评论

评论列表(0条)

保存