mysql 大小写取消敏感设置

#mysqld --SET-lower_case_table_names=1;

或者在mysql server的配置文件中添加配置项:

vi /etc/my.cnf

lower_case_table_names=1

该变量值的详细定义如下:

Value Meaning
0 Table and database names are stored on disk using the lettercase specified in the CREATE TABLE orCREATE DATABASE statement. Name comparisons are case sensitive. You should not set this variable to 0 if you are running MySQL on a system that has case-insensitive file names (such as Windows or Mac OS X). If you force this variable to 0 with --lower-case-table-names=0 on a case-insensitive file system and access MyISAM tablenames using different lettercases, index corruption may result.
1 Table names are stored in lowercase on disk and name comparisons are not case sensitive. MySQL converts all table names to lowercase on storage and lookup. This behavior also applies to database names and table aliases.
2 Table and database names are stored on disk using the lettercase specified in the CREATE TABLE orCREATE DATABASE statement, but MySQL converts them to lowercase on lookup. Name comparisons are not case sensitive. This works only on file systems that are not case sensitive! InnoDB table names are stored in lowercase, as forlower_case_table_names=1.
时间: 2024-08-04 18:25:15

mysql 大小写取消敏感设置的相关文章

MySQL查询大小写是否敏感问题分析

mysql数据库在做查询时候,有时候是英文字母大小写敏感的,有时候又不是的,主要是由mysql的字符校验规则的设置决定的,通常默认是不支持的大小写字母敏感的.  1. 什么是字符集和校验规则? 字符集是一套符号和编码.校对规则是在字符集内用于比较字符的一套规则.任何一个给定的字符集至少有一个校对规则,它可能有几个校对规则.要想列出一个字符集的校对规则,使用SHOW COLLATION语句. 校对规则一般有这些特征: 两个不同的字符集不能有相同的校对规则. 每个字符集有一个默认校对规则.例如,ut

mysql 不区分大小写(大小写不敏感)

下边用一张表来区分mysql在windows和linux默认情况下对大小写的敏感程度 操作系统 表名 变量名 字段值 windows 不敏感 不敏感 不敏感 linux 敏感 敏感 敏感 linux下先不做介绍,因为没有实际用过,下边说下在windows下的修改方法: 表名区分大小写改法: lower_case_table_names = 0 其中 0:区分大小写,1:不区分大小写 字段值的改法: 1. 创建时设置: CREATE TABLE T( A VARCHAR(10) BINARY  )

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

一.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参数详解

MySQL的UNIQUE KEY对数据中字母的大小写不敏感

今天遇到一个坑,对于下列这样一个表: CREATE TABLE `test3` ( `id` int(11) NOT NULL, `name` char(20) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8: 它的数据如下: +----+------+ | id | name | +----+------+ | 1 | aaa | | 2 | Aaa | +----+------+ 现在我想在这个表上的

Mysql 大小写问题

今天发布程序的时候,日志报错找不到表,但是系统中已经存在表,最后发现是sql大小写的问题,mysql默认设置导致这些执行失败. 1.用ROOT登录,修改/etc/my.cnf 2.在[mysqld]下加入一行:lower_case_table_names=1 3.重新启动数据库即可 就需要设置忽略大小写.设置lower-case-table-names=1,重启mysql实例生效. 这时就产生了另外一个问题,之前的大写字母的数据库名都失效了.都提示找不到数据库名.注释掉个lower-case-t

Mysql字符集书相关设置

最近,在项目组使用的mysql数据库中,插入数据出现乱码,关于这个问题做了下总结,我们从最基本的地方说起,到错误产生的深层次原因和解决办法. 基本概念 • 字符(Character)是指人类语言中最小的表义符号.例如’A'.’B'等:• 给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encoding).例如,我们给字符’A'赋予数值0,给字符’B'赋予数值1,则0就是字符’A'的编码:• 给定一系列字符并赋予对应的编码后,所有这些字符和编码对组成的集合就

【转】MYSQL大小写问题

经常遇到的问题,一些不是特别重要但是又比较郁闷的事情.例如今天这个MySQL大小写敏感. 先上测试结果. Linux环境下,不是windows平台下.区别很大.注意. 一图胜千言 mysql> show create table Ac; +-------+-------------------------------------------------------------------------------------------------------------------------+

MySQL大小写问题

字段值的大小写由mysql的校对规则来控制.提到校对规则,就不得不说字符集.字符集是一套符号和编码,校对规则是在字符集内用于比较字符的一套规则  . 一般而言,校对规则以其相关的字符集名开始,通常包括一个语言名,并且以_ci(大小写不敏感)._cs(大小写敏感)或_bin(二元)结束 .比如 utf8字符集,utf8_general_ci,表示不区分大小写,这个是utf8字符集默认的校对规则:utf8_general_cs表示区分大小写,utf8_bin表示二进制比较,同样也区分大小写 .

[转载]SET FOREIGN_KEY_CHECKS=0;在Mysql中取消外键约束

Mysql中如果表和表之间建立的外键约束,则无法删除表及修改表结构. 解决方法是在Mysql中取消外键约束:  SET FOREIGN_KEY_CHECKS=0; 然后将原来表的数据导出到sql语句,重新创建此表后,再把数据使用sql导入, 然后再设置外键约束: SET FOREIGN_KEY_CHECKS=1;