mysql表名大小写_Mysql表名忽略大小写配置及注意事项

mysql表忽略大小写

因为linux下mysql默认是要区分表名大小写的。mysql是否区分大小写设置是由参数lower _ case _ table _ names决定的,其中:

lower_case_table_names = 0

区分大小写(即对表名大小写敏感),默认是这种设置。这样设置后,在mysql里创建的表名带不带大写字母都没有影响,都可以正常读出和被引用。变量lower_case_file_system说明是否数据目录所在的文件系统对文件名的大小写敏感,其中:ON说明对文件名的大小写不敏感,OFF表示

SHOW VARIABLES LIKE ‘%case%’

Variables _name

Value

lower_case_file_system

ON

lower_case_table_names

0

lower_case_table_names = 1

不区分大小写(即对表名大小写不敏感)。这样设置后,表名在硬盘上以小写保存,MySQL将所有表名转换为小写存储和查找表上。该行为也适合数据库名和表的别名。

SHOW VARIABLES LIKE ‘%case%’

Variables _name

Value

lower_case_file_system

ON

lower_case_table_names

1

也就是说,mysql设置为不分区大小写后,创建库或表时,不管创建时使用大写字母,创建成功后,都是强制以小写保存!

配置Mysql表明忽略大小写

修改mysql为不区分表名大小写设置:

[root@test-huanqiu ~]# mysqladmin -uroot -p shutdown //以安全模式关闭数据库

[root@test-huanqiu ~]# vi /etc/my.cnf //添加下面一行设置

.....

[mysqld]

lower_case_table_names=1

.....

[root@test-huanqiu ~]# service mysqld start //启动mysql

出现问题

在linux环境中,数据库中表存在大小写时,进行设置 lower_case_table_names = 1 后,将调用数据库表的时候报表不存在,但是通过show tables任然可以查看到有这张表的存在。

解决办法

先在my.cnf里将lower_case_table_names参数再次调整为0,改成区分大小写

然后mysqladmin -uroot -p shutdown 以安全模式关闭数据库

登陆mysql数据库,”alter table 旧表名 rename 新表名” 将带大写字母的旧表改为小写表名

最后再启动mysql即可!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值