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

来源:互联网 发布:java首页登录开发注意 编辑:程序博客网 时间:2024/05/22 15:42

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

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

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

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

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

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

XiaonandeMacBook-Pro:~ Ive$ lsApplications    Downloads   Music       VirtualBox VMsDesktop     Library     Pictures    wwwDocuments   Movies      PublicXiaonandeMacBook-Pro:~ Ive$ cd musicXiaonandeMacBook-Pro:music Ive$ lsAudio Music Apps    iTunesGarageBand      网易云音乐XiaonandeMacBook-Pro:music Ive$ cd ../Music/XiaonandeMacBook-Pro:Music Ive$ lsAudio Music Apps    iTunesGarageBand      网易云音乐

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

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

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

  lower_case_table_names = 1

  参数解释:

  0:区分大小写

  1:不区分大小写

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

0 0