mysql中大小写敏感么?

mysql中大小写敏感么?,第1张

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 casesensitivity of database and table names. This means database and table names are casesensitive in Unix and case insensitive in Windows.列名的大小写说明:

Windows环境下大小写不敏感CREATETABLEtab(idINTAUTO_INCREMENT,valVARCHAR(10),PRIMARYKEY(id))mysql>select*fromtabEmptyset(0.00sec)mysql>select*fromTabEmptyset(0.00sec)mysql>select*from`Tab`Emptyset(0.00sec)在MySQL中如何在硬盘上保存和使用表名和数据库名由lower_case_tables_name系统变量确定,可以在启动mysqld时设置。lower_case_tables_name可以采用下面的任一值:值含义0使用CREATETABLE或CREATEDATABASE语句指定的大写和小写在硬盘上保存表名和数据库名。名称比较对大小写敏感。在Unix系统中的默认设置即如此。请注意如果在大小写不敏感的文件系统上用--lower-case-table-names=0强制设为0,并且使用不同的大小写访问MyISAM表名,会导致索引破坏。1表名在硬盘上以小写保存,名称比较对大小写敏感。MySQL将所有表名转换为小写以便存储和查找。该行为也适合数据库名和表的别名。该值为Windows和MacOSX系统中的默认值。2表名和数据库名在硬盘上使用CREATETABLE或CREATEDATABASE语句指定的大小写进行保存,但MySQL将它们转换为小写以便查找。名称比较对大小写敏感。注释:只在对大小写不敏感的文件系统上适用!InnoDB表名以小写保存,例如lower_case_tables_name=1。在Windows和MacOSX中,lower_case_tables_name的默认值是1。如果只在一个平台上使用MySQL,通常不需要更改lower_case_tables_name变量。然而,如果你想要在对大小写敏感不同的文件系统的平台之间转移表,会遇到困难。例如,在Unix中,my_tables和MY_tables是两个不同的表,但在Windows中,这两个表名相同。要想避免由于数据库或表名的大小写造成的数据转移问题,可使用两个选项:•在任何系统中可以使用lower_case_tables_name=1。使用该选项的不利之处是当使用SHOWTABLES或SHOWDATABASES时,看不出名字原来是用大写还是小写。•在Unix中使用lower_case_tables_name=0,在Windows中使用lower_case_tables_name=2。这样了可以保留数据库名和表名的大小写。不利之处是必须确保在Windows中查询总是用正确大小写引用数据库名和表名。如果将查询转移到Unix中,由于在Unix中大小写很重要,如果大小写不正确,它们不工作。例外:如果你正使用InnoDB表,在任何平台上均应将lower_case_tables_name设置为1,以强制将名转换为小写。请注意在Unix中将lower_case_tables_name设置为1之前,重启mysqld之前,必须先将旧的数据库名和表名转换为小写。

如果需要修改大小写不敏感,则在此步进行修改。根据实际情况找到自己安装的配置文件,我安装的Mysql配置文件位置

打开 mysqld.cnf 文件修改

远程访问配置,找到以下两行,并注释

在 [mysqld] 下增加一行

保存后执行

mysql初始化后密码会丢失,需要重新设置

在打开的内容中找到这么一句话:

其中 l!+*V&yQd8pV 就是新的密码,复制一下


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存