`

Linux Mysq表名的大小写问题

阅读更多

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

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

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

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

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

 

MySQL在Windows下都不区分大小写。

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

  在MySQL的配置文件中my.ini [mysqld] 中增加一行

  lower_case_table_names = 1

  参数解释:

  0:区分大小写

  1:不区分大小写

在 MySQL 中,数据库和表对就于那些目录下的目录和文件。因而,操作系统的敏感性决定数据库和表命名的大小写敏感。这就意味着数据库和表名在 Windows 中是大小写不敏感的,而在大多数类型的 Unix 系统中是大小写敏感的。


奇怪的是列名与列的别名在所有的情况下均是忽略大小写的,而表的别名又是区分大小写的。


要避免这个问题,你最好在定义数据库命名规则的时候就全部采用小写字母加下划线的组合,而不使用任何的大写字母。


或者也可以强制以 -O lower_case_table_names=1 参数启动 mysqld(如果使用 --defaults-file=...\my.cnf 参数来读取指定的配置文件启动 mysqld 的话,你需要在配置文件的 [mysqld] 区段下增加一行 lower_case_table_names=1)。这样MySQL 将在创建与查找时将所有的表名自动转换为小写字符(这个选项缺省地在 Windows 中为 1 ,在 Unix 中为 0。从 MySQL 4.0.2 开始,这个选项同样适用于数据库名)。


当你更改这个选项时,你必须在启动 mysqld 前首先将老的表名转换为小写字母。


换句话说,如果你希望在数据库里面创建表的时候保留大小写字符状态,则应该把这个参数置0: lower_case_table_names=1 。否则的话你会发现同样的sqldump脚本在不同的操作系统下最终导入的结果不一样(在Windows下所有的大写字符都变成小写了)。

 

 

 

工作中碰到的问题:

在LINUX下调一个程序老说找不到表,但是我明明是建了表的,在MYSQL的命令行下也可以查到,为什么程序就找不到表呢?

   后来网上查了下,原来是LINUX下的MYSQL默认是要区分表名大小写。

  让MYSQL不区分表名大小写的方法其实很简单:

  1.用ROOT登录,修改/etc/my.cnf【】

  2.在[mysqld]下加入一行:lower_case_table_names=1

  3.重新启动数据库即可

分享到:
评论

相关推荐

    mysql大小写敏感

    MySQL 在 Linux 下默认情况下是严格区分表名和数据库名的大小写,而在 Windows 下则不区分大小写。 在 Linux 下,MySQL 的默认设置是区分表名的大小写,不区分列名的大小写。可以通过添加 lower_case_table_names=...

    Linux安装MySql devel

    在Linux系统中,MySQL数据库是广泛使用的关系型数据库管理系统,尤其在服务器端应用程序开发和大数据存储方面占据着重要地位。为了充分利用MySQL的功能并进行数据库驱动的程序开发,我们需要安装MySQL的开发库,即...

    mysq的llinux安装包-5.6.34.zip

    在这个压缩包"mysq的llinux安装包-5.6.34.zip"中,包含了在Linux环境下安装MySQL 5.6.34所需的所有文件,主要文件是`mysql-5.6.34.tar.gz`,这是一个用于Linux系统的源码包。 以下是对这个安装过程的详细步骤和相关...

    linux中的64位mysq安装包mysql-5.6.30-linux-glibc2.5-x86_64.tar

    2. **InnoDB增强**:支持自适应hash索引、并行插入、在线添加索引等,使得InnoDB更适合大数据量的事务处理。 3. **分区表优化**:支持更多的分区类型,如线性哈希分区,增强了数据管理和查询效率。 4. **复制功能*...

    mysq乱码解决问题

    MySQL 乱码问题是一个常见的困扰,尤其是在数据迁移、版本升级或者跨平台操作时。这个问题涉及到多个层面,包括服务器配置、客户端设置、数据库、连接以及结果集的字符编码。以下是一些解决 MySQL 乱码问题的方法: ...

    mysq5.0l安装文件

    mysq5.0l安装文件,mysql-gui-tools-5.0-r2-win32.msi。小巧玲珑在东西。

    mysq 优化方案+优化策略

    mysq 优化方案+优化策略mysq 优化方案+优化策略mysq 优化方案+优化策略mysq 优化方案+优化策略mysq 优化方案+优化策略mysq 优化方案+优化策略mysq 优化方案+优化策略

    mysq常用函数

    mysq常用函数字符串处理函数日期和时间函数常用的数值函数 CEIL(x)返回大于X的最大整数

    Linux下基于deb的Mysq安装包l

    在Linux环境中,MySQL数据库系统是广泛使用的开源关系型数据库管理系统,尤其在服务器端应用中扮演着重要角色。这里我们讨论的是基于deb包管理系统的Linux发行版(如Ubuntu)上安装MySQL 5.7.24的全套过程。提供的...

    mysql jdk tomact Linux

    在IT行业中,数据库管理系统MySQL、Java Development...此外,监控和日志管理也是关键部分,确保能够及时发现和解决可能出现的问题。熟悉这些基础步骤将帮助你有效地在Linux环境中搭建和管理MySQL、JDK和Tomcat的环境。

    linux中mysql开机自动启动3种方法.docx

    Linux 中 MySQL 开机自动启动 3 种方法 Linux 中 MySQL 开机自动启动是指在 Linux 系统启动时自动启动 MySQL 服务,以便提供数据库服务。本文将介绍三种实现 Linux 中 MySQL 开机自动启动的方法。 方法一:使用 ...

    linux服务器定时自动备份mysql数据库的脚本sh

    利用 crontab -e 将此脚本加入即可,主要是用于linux服务器定时自动备份mysql数据库的脚本sh

    oracle数据导入到Mysq库

    - **测试与验证**:在实际迁移前,先进行小规模的测试,确保数据的一致性和完整性。 - **数据同步**:如果在迁移过程中需要保持两个数据库的同步,可能需要额外的工具或策略。 "oracle2mysql"工具提供了直接连接到...

    mysqbinlog-flashback

    mysqlbinlog的flashback

    JAVA+MYsqlMYsq

    Java和MySQL是两种非常重要的IT技术,广泛应用于各种软件开发,尤其是web应用。在这个"JAVA+MYsql学生信息管理系统"的示例中,我们将探讨如何使用Java编程语言来连接并操作MySQL数据库,实现一个简单的学生信息管理...

    mysq.rar_mysq_php mysq_php 学生管理_php 学生管理 系统_php+mysq

    标题中的“mysq.rar_mysq_php mysq_php 学生管理_php 学生管理 系统_php+mysq”表明这是一个与MySQL数据库和PHP编程相关的压缩文件,主要用于构建一个学生管理系统。在这个系统中,PHP作为服务器端脚本语言与MySQL...

    好用的mysq工具

    非常好用,写SQL语句非常方便,可以 导入SQL执行,也可以导出SQL

    最好的mysq第三方工具l

    最好的mysq第三方工具-----安装程序文件(需要注册机)

    mysq el7.zip

    MySQL是世界上最受欢迎的开源数据库系统之一,尤其在Linux操作系统中,如CentOS 7,它的应用广泛且深入。本文将详细解析如何在CentOS 7环境下安装MySQL 7的RPM包。 首先,让我们理解RPM(Red Hat Package Manager)...

    mysq.rar_php+mysq

    【标题】"mysq.rar_php+mysq"指的是一个关于MySQL数据库与PHP编程结合使用的学习资源包。这个压缩文件可能是为了帮助开发者或者学习者更好地理解如何在PHP项目中集成和操作MySQL数据库。"mysq"通常指的是MySQL,而...

Global site tag (gtag.js) - Google Analytics