MySQL数据库名、表名、列名、别名区分大小写的问题

网站代码移植到服务器的时候,发现数据库读取不出来,查找原因,最终发现是数据库表名大小写问题。

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

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

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

  4、变量名也是严格区分大小写的;

操作系统的敏感性决定数据库和表命名的大小写敏感,所以:
MySQL在Windows下都不区分大小写。
MySQL在Mac下好像也不区分大小写(起码我操作起来没出现问题),但是OS X又是类Unix系统,难道大小写敏感改了?

XiaonandeMacBook-Pro:~ Ive$ ls
Applications    Downloads   Music       VirtualBox VMs
Desktop     Library     Pictures    www
Documents   Movies      Public
XiaonandeMacBook-Pro:~ Ive$ cd music
XiaonandeMacBook-Pro:music Ive$ ls
Audio Music Apps    iTunes
GarageBand      网易云音乐
XiaonandeMacBook-Pro:music Ive$ cd ../Music/
XiaonandeMacBook-Pro:Music Ive$ ls
Audio Music Apps    iTunes
GarageBand      网易云音乐

测试了一下,大小写其实都可以,但是小写的时候,没有Tab补全。

  所以在不同操作系统中为了能使程序和数据库都能正常运行,最好的办法是在设计的时候都转为小写,但是如果在设计的时候已经规范化大小写了,那么在Linux环境下只要对数据库的配置做下改动就行了,具体操作如下:

  在MySQL的配置文件中/etc/mysql/my.ini [mysqld] 模块中增加一行

  lower_case_table_names = 1

  参数解释:

  0:区分大小写

  1:不区分大小写

https://help.aliyun.com/knowledge_detail/7602928.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值