Mysql大小写敏感的问题 --转

一、1 CREATE TABLE NAME(name VARCHAR(10));

对这个表,缺省情况下,下面两个查询的结果是一样的:

SELECT * FROM TABLE NAME WHERE name=‘clip‘;

SELECT * FROM TABLE NAME WHERE name=‘Clip‘;

MySql默认查询是不区分大小写的,如果需要区分他,必须在建表的时候,Binary标示敏感的属性.

CREATE TABLE NAME(

name VARCHAR(10) BINARY

);

2 在SQL语句中实现 SELECT * FROM TABLE NAME WHERE  BINARY name=‘Clip‘;

3 设置字符集:

utf8_general_ci --不区分大小写

utf8_bin--区分大小写

二、 MySQL在windows下是不区分大小写的,将script文件导入MySQL后表名也会自动转化为小写,结果再 想要将数据库导出放到linux服务器中使用时就出错了。因为在linux下表名区分大小写而找不到表,查了很多都是说在linux下更改MySQL的设置使其也不区分大小写,但是有没有办法反过来让windows 下大小写敏感呢。其实方法是一样的,相应的更改windows中MySQL的设置就行了。

具体操作:

在MySQL的配置文件my.ini中增加一行:

lower_case_table_names = 0

其中 0:区分大小写,1:不区分大小写

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

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

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

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

      4、变量名也是严格区分大小写的;    MySQL在Windows下都不区分大小写

原文:http://blog.163.com/[email protected]/blog/static/30463279200861010513820/

时间: 2024-08-28 22:17:53

Mysql大小写敏感的问题 --转的相关文章

【已解决】Windows下 MySQL大小写敏感 解决方案及分析

Windows下 MySQL大小写敏感配置 [email protected] http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-3-27 最近在window系统下 操作Linux系统下创建的数据库,发现有些不对劲,比较了半天才发现是大小写敏感的问题造成的.网上搜索了一下,解决了这个问题,做个简明扼要的记录. 按照网上的说明: WINDOWS: 编辑MySQL安装目录下的my.ini 文件,在[mysqld]节下 添加 lower_case_table_n

MySQL大小写敏感问题和命名规范

注:本文大部内容参考自互联网相关文章 1.MySQL大小写敏感规则 MySQL中,一个库会对应一个文件夹,库里的表会则以文件的方式存放在文件夹内,所以,操作系统对大小写的敏感性决定了数据库和表的大小写敏感(MySQL有一个只读的系统变量lower_case_file_system,其值反映的正是当前文件系统是否区分大小写)因此:在Windows下Mysql的数据库和表名是大小写不敏感的,而在大多数类型的Unix系统中是大小写敏感的. 以下是MySQL详细的大小写区分规则: 在Linux下: 1.

Mysql大小写敏感

Author:Skate Time:2015/03/11 Mysql大小写敏感 字符串大小写敏感和Mysql的数据库的名字.表名字.字段名字.还有字段值有关. 1.和数据库名字.表名字.存储过程和触发器有关 Mysql中控制数据库名和表名的大小写敏感是由参数lower_case_table_names控制, 为0时: 表示区分大小写,使用CREATE TABLE或CREATE DATABASE语句指定的大小写字母在硬盘上保存表名和数据库名. 名称比较对大小写敏感.在大小写不敏感的操作系统如win

MySQL大小写敏感问题

在 MySQL 中,数据库和表其实就是数据目录下的目录和文. 因而,操作系统的敏感性决定数据库和表命名的大小写敏感.这就意味着数据库和表名在 Windows 中是大小写不敏感的,而在大多数类型的 Unix/Linux 系统中是大小写敏感的. MySQL大小写敏感可以通过配置文件的lower_case_table_names参数来控制. WINDOWS: 编辑MySQL安装目录下的my.ini 文件,在[mysqld]节下 添加 lower_case_table_names=0 (备注:为0时大小

Centos7 下mysql大小写敏感问题

在Centos7 下mysql大小写敏感问题,会导致程序运行时找不到对应的表. 解决办法: 第一步:编辑/etc/my.cnf文件,在[mysqld]节下 添加 lower_case_table_names=1 参数,并设置相应的值 (备注:为0时大小写敏感,为1时大小写不敏感,默认为0). (必须是在[mysqld]节点下添加,否则没有效果) 第二步:重启mysql # service mysqld restart 第三步:查看mysql的参数 # mysql -uroot -p 原文地址:h

linux下rpm方式安装mysql--修改root密码--设置mysql大小写敏感

一,软件准备 MySQL-client-5.6.26-1.linux_glibc2.5.x86_64.rpm+MySQL-server-5.6.26-1.linux_glibc2.5.x86_64.rpm 二.将软件拷贝至linux服务器任意目录,以/home/mysql为例 三.安装服务端 进入MySql目录 : # cd /usr/local/mysql/ 修改权限:# chmod 777 MySQL-server-5.6.39-1.el6.x86_64.rpm 执行安装:# rpm -iv

一个因MySQL大小写敏感导致的问题

做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 00 MYSQL对大小写敏感 见字如面,见标题知内容.你有遇到过因为MYSQL对大小写敏感而被坑的体验吗? 之前看过阿里巴巴Java开发手册,在MySql建表规约里有看到: [强制]表名.字段名必须使用小写字母或数字 , 禁止出现数字开头,禁止两个下划线中间只 出现数字.数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑. 说明: MySQL 在 Windows 下不区分大小写,但在 Linux

Mysql大小写敏感的问题

一.1 CREATE TABLE NAME(name VARCHAR(10)); 对这个表,缺省情况下,下面两个查询的结果是一样的: SELECT * FROM TABLE NAME WHERE name='clip'; SELECT * FROM TABLE NAME WHERE name='Clip'; MySql默认查询是不区分大小写的,如果需要区分他,必须在建表的时候,Binary标示敏感的属性. CREATE TABLE NAME( name VARCHAR(10) BINARY );

mysql大小写敏感与校对规则

大家在使用mysql过程中,可能会遇到类似一下的问题: [email protected] 07:42:00>select * from test where c1 like 'ab%'; +-----+ | c1 | +-----+ | abc | | ABD | +-----+ 模糊匹配 ab%,结果以AB开头的字符串也出现在结果集中,大家很自然的认为是大小写敏感的问题.那么mysql中大小写敏感是如何控制的:数据库名,表名,字段名这些字典对象以及字段值的大小敏感是如何控制的:以及校验规则与