mysql linux下表名忽略大小写注意事项

在Unix中使用lower_case_tables_name=0,在Windows中使用lower_case_tables_name=2。这样了可以保留数据库名和表名的大小写。不利之处是必须确保在Windows中查询总是用正确大小写引用数据库名和表名。如果将查询转移到Unix中,由于在Unix中大小写很重要,如果大小写不正确,它们不工作。例外:如果你正使用InnoDB表,在任何平台上均应将lower_case_tables_name设置为1,以强制将名转换为小写。请注意在Unix中将lower_case_tables_name设置为1之前,重启mysqld之前,必须先将旧的数据库名和表名转换为小写
时间: 2024-12-11 01:05:09

mysql linux下表名忽略大小写注意事项的相关文章

让 MySQL 在 Linux 下表名不区分大小写(实为表名全小写)

把 Windows 下的应用部署到 Linux 下,使用到了 Quartz 集群的特性,所以建了 MySql 的中间表,一启动看到报错: Invocation of init method failed; nested exception is org.quartz.JobPersistenceException: Couldn't retrieve trigger: Table 'unmijob.QRTZ_TRIGGERS' doesn't exist [See nested exceptio

【MySql】linux下,设置mysql表名忽略大小写

[障碍再现] 状况描述01: 在LINUX下调一个程序经常报出找不到表,但是我明明是建了表的, 测试的时候,遇到一些问题,从Windows平台访问虚拟机中的Web应用,经常报出找不到表,但自己明明在数据库中看到相关的数据表和数据,在linux中通过MYSQL的命令行下也可以查到,为什么从Windows平台上的程序来访问虚拟机中的MySql时,就找不到呢? [原因分析] 原来是LINUX下的MYSQL默认是要区分表名大小写的,而在windows下是不区分. 从windows下导出的数据脚本中数据表

mysql表名忽略大小写

查看大小写区分mysql> show variables like "%case%";+------------------------+-------+| Variable_name          | Value |+------------------------+-------+| lower_case_file_system | OFF   | | lower_case_table_names | 0     | +------------------------+-

mysql表名忽略大小写配置

linux下mysql默认是要区分表名大小写的.mysql是否区分大小写设置是由参数lower_case_table_names决定的,其中:1)lower_case_table_names = 0 区分大小写(即对大小写不敏感),默认是这种设置.这样设置后,在mysql里创建的表名带不带大写字母都没有影响,都可以正常读出和被引用. 2)lower_case_table_names = 1 不区分大小写(即对大小写敏感).这样设置后,表名在硬盘上以小写保存,MySQL将所有表名转换为小写存储和查

linux下MySQL表名忽略大小写设置

最近公司项目的MySQL数据库要迁移到linux下,部署时日志总是显示报找不到一个表,用MYSQL查看明明有这个表.后来经百度,原来LINUX下的MYSQL默认是区分表名大小写的. 用命令查看当前是否区分大小写: ***************************************mysql> show variables like "%case%"; +------------------------+-------+| Variable_name          

MYSQL库中表名忽略大小写设置的影响

前不久,对mysql的lower_case_table_names参数有点小小的疑问: 1.lower_case_table_names是表名忽略大小写还是所有对象(字段.索引等)都忽略大小写? 2.区分大小写环境里的表(含大写.小写)迁移到不区分大小写环境里面会怎么样? 3.不区分大小写环境里的表(含用大写.小写表名语句建的表)迁移到区分大小写环境里面又会怎样 4.lower_case_table _names设置为什么值较好? 于是做了针对这些问题做了个小小的实验,先附实验结论. 实验结论:

Linux系统下不让MySQL区分表名的大小写的解决办法

问题描述: 今天将某项目数据库移植到liunix服务器上,结果出现无法找到表的错误,查询数据库,表确实是存在的.经过分析比较,发现是表名大小写问题导致. 问题分析: MySQL数据库的表名在Linux系统下是严格区分大小写的,在Windows系统下开发的程序移植到Linux系统下,如果程序中SQL语句没有严格按照大小写访问数据库表,就可能会出现找不到表的错误. 解决办法: 修改MySQL的配置文件my.cnf,在[mysqld]部分添加如下配置选项lower_case_table_names =

linux mysql不区分表名大小写配置

原来Linux下的MySQL默认是区分表名大小写的,通过如下设置,可以让MySQL不区分表名大小写:1.用root登录,修改 /etc/my.cnf:2.在[mysqld]节点下,加入一行: lower_case_table_names=1(值为0时区分大小写)3.重启MySQL即可: MySQL在Linux下数据库名.表名.列名.别名大小写规则是这样的:1)数据库名与表名是严格区分大小写的:2)表的别名是严格区分大小写的:3)列名与列的别名在所有的情况下均是忽略大小写的:4)变量名也是严格区分

设置Linux中的Mysql不区分表名大小写

1. MySQL数据库的表名在Linux系统下是严格区分大小写的,在Windows系统下开发的程序移植到Linux系统下,如果程序中SQL语句没有严格按照大小写访问数据库表,就可能会出现找不到表的错误. 2. 解决办法是:修改MySQL的配置文件my.cnf,在[mysqld]部分添加如下配置选项lower_case_table_names = 1,重启MySQL服务即可. 3. 但这个办法治标不治本,根本的解决办法是遵从跨平台开发的好的实践,例如SQL语句中的库名.表名.字段名等等要严格区分大