Linux mysql表名区分大小写设置与实验测试

修改mysql教程 server安装目录下的 my.ini 文件,在mysqld节下加入下面一行 set-variable=lower_case_table_names=0 (0:大小写敏感;1:大小写不敏感)最后重启一下mysql服务即可。

1.lower_case_tables_name=0的情况(linux默认)
直接启动mysql教程,在mytest库中新建表mytable和mytable

mysql> use mytest;
mysql> create table mytable(id int not null,name varchar(10),dt date);
mysql> create table mytable(id int not null,name varchar(10),dt date);
mysql> show tables;
+------------------+
| tables_in_mytest |
+------------------+
| mytable |
| mytable |

+------------------+
默认情况下,可以同时创建mytable和mytable两个表

2.lower_case_tables_name=1的情况(我们需要设置成这种情况)
进入到etc目录,编辑my.cnf文件
[root@mysqlserver etc]# vi my.cnf
找到 [mysqld]
在它的全局变量的最后面加入一行:lower_case_table_names = 1
保存,退出,然后重新启动mysql
[root@mysqlserver etc]# service mysqld restart;
进入到mysql
[root@mysqlserver mysql]# bin/mysql
mysql> use mytest;
mysql> select * from mytable;
mysql> select * from mytable;
两个查询的结果一样,都是查询mytable表,而mytable表已经找不到了(可以看到,但查询不到)
我们再试着创建mytable表
mysql> create table mytable(id int not null,name varchar(10),dt date);
error 1050 (42s01): table 'mytable' already exists
将得到表已经存在的提示

同样,我们可以试着创建mytest库
mysql> create database mytest;
error 1007 (hy000): can't create database 'mytest'; database exists
也会得到库已经存在的提示

在这种情况下,表名和库名都不区分大小写了。

注意:在unix中将lower_case_tables_name设置为1之前,重启mysqld之前, 必须先将旧的数据库教程教程名和表名转换为小写,否则设置后,将找不到以前的表

时间: 2024-08-26 11:29:26

Linux mysql表名区分大小写设置与实验测试的相关文章

ubuntu mysql表名大小写区分

近期开发线上操作系统用的ubuntu,数据库用的mysql,突然发现mysql表名大写报错,找一下原因,看了下mysql的配置,果真可以设置,窃喜. 先找到你MySQL的my.cnf配置文件并修改,当然如果你的路径不一定跟我一样,这点要注意一下 在[mysqld]中添加 lower_case_table_names=1 第一步:vi/etc/mysql/my.cnf  第二步:添加 lower_case_table_names=1  第三步:重启mysql /etc/init.d/mysql r

jsp查询mysql,表名是变量,需要前段输入,怎么实现

问题描述 jsp查询mysql,表名是变量,需要前段输入,怎么实现 如题....写了一个下午就是因为表名是变量无法实现.... stmt = conn.createStatement(); String sql="select * from "+table1+"where station='"+station1+"'"; ResultSet rs = stmt.executeQuery(sql); 这样不能连接 但是 String sql=&qu

解决windows下MySQL表名大写自动变小写的问题

解决windows下MySQL表名大写自动变小写的问题   有些人可能会遇到在windows下,表名不能用大写字母, 即使使用了大写字母的建表语句,还是会被自动转成小写.   解决方法:  打开 MySQL 的配置文件 my.ini ,在 [mysqld] 节下加入    Xml代码   lower_case_table_names=0     重启MySQL,大功告成.

MySQL表名不区分大小写的设置方法_Mysql

原来Linux下的MySQL默认是区分表名大小写的,通过如下设置,可以让MySQL不区分表名大小写:1.用root登录,修改 /etc/my.cnf:2.在[mysqld]节点下,加入一行: lower_case_table_names=13.重启MySQL即可: 其中 lower_case_table_names=1 参数缺省地在 Windows 中这个选项为 1 ,在 Unix 中为 0,因此在window中不会遇到的问题,一旦一直到linux就会出问题的原因(尤其在mysql对表起名时是无

windows下mysql表名不自动转换小写配置

mysql5.6版本配置文件有两个 1.默认的配置在program files/MySQL/MySQL Server 5.6/my-default.ini 2.一个在programData/MySQL/MySQL Server 5.6/my.ini 注意需要配置第二个的my.ini添加 [mysqld] lower_case_table_names=2   重启MySQL即可     引文: windows 和linux对大小写的敏感性不同而导致的.数据库和表名在 Windows 中是大小写不敏

mysql linux 下表名忽略大小写相关设置

修改/etc/my.cnf 在/etc/my.cnf 中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务.

mysql在windows下支持表名大小写,lower_case_table_names

原文:mysql在windows下支持表名大小写,lower_case_table_names windows下mysql默认是不支表名大小写的,也就是表名大小写不敏感. 用phpmyadmin创建的驼峰式表名,全部被强制成小写. mysql表名大小写敏感的参数:lower_case_table_names.   Windows2012 下的C:\ProgramData\MySQL\MySQL Server 5.6\my.ini 文件 在[mysqld]下加上lower_case_table_n

ORACLE 透明网关访问 MYSQL 表

环境 LINUX 64 BIT ORACLE 11.2.0.4      LINUX 64 BIT MYSQL 5.7.14 1. MYSQL建立一个用户用于ORACLE DBLINK 建立这里忽略掉 2. 11gR2 默认安装了透明网关检查一下 [orared@roseha1 ~]$ dg4odbc  Oracle Corporation --- WEDNESDAY NOV 09 2016 15:51:46.233 Heterogeneous Agent Release 11.2.0.4.0

linux下mysql写表名如何区分大小写

linux下的mysql数据库默认是区分表名大小写的,若要忽略表名大小写,添加一个配置即可: vi /etc/my.cnf 在[mysqld]栏下增加: lower_case_table_names = 0 则可忽略大小写,如果设置 lower_case_table_names = 1则区分大小写. 默认mysql是区分大小写的. 本文出自 "技术成就梦想" 博客,请务必保留此出处http://ixdba.blog.51cto.com/2895551/526417 查看本栏目更多精彩内