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配置,使查询操作中表名的大小写变得不敏感。 ### MySQL配置文件my.cnf 在Linux系统中,MySQL的主要配置文件通常位于`/etc/my.cnf`或`/etc/mysql/my.cnf`。如果这些路径...
在Windows系统中,默认情况下,MySQL不区分表名的大小写,而在Unix或者Linux系统中,MySQL则默认区分表名的大小写。这种差异可能会导致一些跨平台的程序在执行时出现找不到表的错误,尤其是在开发或迁移过程中。 当...
### MySQL表名大小写敏感性问题详解 #### 标题:0积分:MySql表名大小写的问题 #### 描述:MySql表名大小写的问题 #### 标签:mysql 大小写 #### 部分内容摘要: > 在MySQL环境中,表名的大小写敏感性是一个常见...
2. **lower_case_table_names = 1**:此设置下,MySQL不区分表名和数据库名的大小写。所有表名在磁盘上以小写形式保存,MySQL在查找和存储时也会将它们转换为小写。同时,数据库名和表的别名也遵循同样的规则。 3. ...
在 Linux 下,MySQL 的默认设置是区分表名的大小写,不区分列名的大小写。可以通过添加 lower_case_table_names=1 来使得 MySQL 不区分表名的大小写。lower_case_table_names 参数的值可以是 0 或 1,分别表示区分大...
尽管列名在大多数情况下不区分大小写,但如果你想在查询时区分字段值的大小写,可以对字段设置BINARY属性。BINARY属性确保比较时考虑字符的ASCII值,而不是忽略大小写。有三种方式可以设置BINARY属性: A. 创建表时...
MySQL 8.0作为MySQL数据库的重要版本更新,引入了一系列的新特性与优化改进,其中包括对数据库和表名大小写敏感性的调整。这一变化对于新老用户来说都需要一定的适应期,尤其是那些在早期版本中习惯于特定大小写行为...
1. **Windows环境**:MySQL在Windows下默认不区分大小写,即表名、字段名等标识符的大小写会被忽略。 2. **Linux环境**:而在Linux环境下,默认情况下MySQL严格区分大小写,这意味着在创建表或引用表时必须确保名称...
在 Linux 下,数据库名、表名、列名、别名的大小写规则是严格区分的,而在 Windows 下则不区分大小写。同时,在查询字符串时,MySQL 是大小写不敏感的,这也会导致大小写问题的产生。 在实际应用中,这个问题可能会...
在本文中,我们将探讨如何在Windows和Linux操作系统上设置MySQL使其不区分大小写。 首先,我们要了解`lower_case_table_names`这个配置选项。这是一个用于控制MySQL服务器如何处理表名和数据库名大小写的参数。当`...
编辑MySQL安装目录下的my.ini 文件,在[mysqld]节下 添加 lower_case_table_names=0 (备注:为0时大小写敏感,为1时大小写不敏感,默认为1),可以实现MySql按照建表Sql语句的大小写状态来定义表名
SQL Server默认情况下对标识符(例如表名、列名等)是不区分大小写的。然而,在某些场景下,用户可能希望启用大小写敏感性。这可以通过定义一个特定的排序规则(Collation)来实现。 例如,在SQL Server中创建或...
- **不区分表名大小写**:在`[mysqld]`段落中添加`lower_case_table_names = 1`。 #### 八、设置字符集 为了支持中文,需要将MySQL的默认编码修改为`gbk`或`utf8`: 1. **中止MySQL服务**: ```bash bin/...
当从Windows环境迁移数据到Linux环境时,可能会遇到因表名大小写不一致而导致的问题。例如,如果在Windows上创建了一个名为`codetc_Web`的表,然后在Linux上导入,由于Windows不区分大小写,表名可能被自动转换为...
与之相反,在大多数 Unix 系统(如 Linux)上,文件系统通常区分大小写,因此 MySQL 的数据库和表名也会区分大小写。这意味着 "MyDatabase" 和 "mydatabase" 将被视为两个不同的数据库,"Table1" 和 "table1" 也将被...
本篇文章将详细介绍如何解决MySQL中的库名表名大小写问题以及使其与SQL Server兼容的启动配置方法。 MySQL默认在Linux环境下是大小写敏感的,而在Windows环境下则是大小写不敏感的。这意味着在Linux上,表名...
MySQL是一种广泛使用的开源关系型数据库管理系统,其默认配置在处理表名、列名以及数据库名时通常是不区分大小写的。然而,根据业务需求,有时我们需要让MySQL对这些名称进行大小写敏感的处理,例如在开发多语言应用...