MySQL在Linux上的数据库名称、表名称、列名称和别名的大小写规则如下:
1、数据库名和表名严格区分大小写
2、表格别名严格区分大小写
3、列名和列别名均忽略大小写;
4、变量名也严格区分大小写
MySQL在Windows上不区分大小写。
因此,为了使程序和数据库在不同的操作系统上正常运行,最好在设计时转换为小写字母,但如果设计时大小写标准化,则在Windows环境中更改数据库配置就足够了。 具体操作如下。
将my.ini [mysqld]行添加到MySQL配置文件中
lower_case_table_names=1
参数说明:
0 :区分大小写
1 :不区分大小写
在MySQL中,数据库/表对位于它们目录下的目录和文件中。 因此,操作系统的机密性区分数据库和表名称的大小写。 也就是说,Windows不区分大小写,大多数类型的Unix系统都区分大小写。
奇怪的是,列名和列别名在所有情况下都忽略大小写,而表别名区分大小写。
为了避免出现此问题,在定义数据库命名约定时,建议使用所有小写字母和下划线组合,而不使用大写字母。
或者,也可以使用-O lower_case_table_names=1参数强制启动mysqld。 如果使用--defaults-file=.my.cnf参数读取指定的配置文件并启动mysqld,则必须启动配置文件中的[mysqld],这将导致MySQL在创建和搜索时(默认情况下,此选项在Windows上为1,在Unix上为0。 从MySQL 4.0.2开始,此选项也适用于数据库名称)。
如果威武的发卡更改此选项,则在启动mysqld之前必须先将旧表名转换为小写。
也就是说,如果在数据库中创建表时要保持大小写状态,则必须将此参数设置为0。 0: lower_case_table_names=1。 否则,您会看到操作系统最终导入相同sqldump脚本的结果不同(Windows上所有大小写均为小写)。