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

问题描述:

今天将某项目数据库移植到liunix服务器上,结果出现无法找到表的错误,查询数据库,表确实是存在的。经过分析比较,发现是表名大小写问题导致。

问题分析:

MySQL数据库的表名在Linux系统下是严格区分大小写的,在Windows系统下开发的程序移植到Linux系统下,如果程序中SQL语句没有严格按照大小写访问数据库表,就可能会出现找不到表的错误。

解决办法:

修改MySQL的配置文件my.cnf,在[mysqld]部分添加如下配置选项lower_case_table_names = 1,重启MySQL服务即可。

建议:

但这个办法治标不治本,根本的解决办法是遵从跨平台开发的好的实践,例如SQL语句中的库名、表名、字段名等等要严格区分大小写,与数据库中的库名、表名、字段名的大小写完全匹配上,这样就会增强程序的可移植性。避免修改部署目标环境的配置,如果目标环境部署了其它的应用,就可能会造成其它应用不起作用。

注意

Icon

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

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

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

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

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

时间: 2024-10-06 17:57:33

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

【mark】centos下,更改mysql数据库表名大小写敏感

Linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写:root登录,修改/etc/my.cnf,在末尾添加一行:lower_case_table_names=1lower_case_table_names参数: 0为敏感,1为不敏感. MySQL在Linux下数据库名.表名.列名.别名大小写规则是这样的:1.数据库名与表名是严格区分大小写的:2.表的别名是严格区分大小写的:3.列名与列的别名在所有的情况下均是忽略大小写的:4.变量名也是严格区分大小写的: *如果之前已经创建

关于linux系统无法启动,提示Give root password for maintenace的解决办法

问题: 今天早上开机发现系统无法启动了,给出的提示信息为: 没有太明白什么意思,大概是因为磁盘没法加载造成的系统无法开机. 我的系统有两个分区,sda1和sda2,sda1为/boot分区,/sda2为逻辑卷,下面有"根分区""home分区""swap分区""data分区": 使用df -T查看一下挂载的分区,只有/和/home两个分区挂载上去了,/boot分区和home以及data分区都没有挂载,也就是说系统根本没有挂载/b

关于Linux Mint下的pluma软件打开txt文本文件有时候乱码的解决办法

解决方法: 1.在终端输入“dconf-editor”回车(见图2).(如果没有安装用“sudo apt-get install dconf-tools”安装.) 图2 2.展开org/gnome/gedit/preferences/encodings(见图3) auto-detected的value中加入 'GB18030', 加在uft8后面,按回车: show-in-menu的value中在前面加入 'GB18030', 按回车.----事实证明:加入GBK貌似才能解决!!! 图3 现在再

WIN7 64位系统下,右下角的声音和电源图标不见的解决办法

近日,电脑突然出现任务栏右下角的声音和电源图标消失不见的问题,重启仍旧没有修复,后来找到了解决办法 解决办法: 1.Ctrl+Shift+Esc键调出windows资源管理器. 2.找到进程中的explorer.exe进程并结束它. 3.在文件选项的新建任务选项里重新新建explorer.exe进程,便恢复正常.

关于maven环境下使用pom.xml引入包名.lastUpdate包的解决办法

今天在导入POI-OOXML的时候老师缺失xmlbeans包,而且刷新pom文件总是生成一个lastupdate文件,大小为1KB,终于找到解决办法. 1.首先删除想要的jar包所在文件夹内的所有 .lastUpdate的文件,并下载需要的jar包放入相应的文件夹内. 2.在eclipse中依次打开window->showview->other,找到maven 3.选择Maven库点击ok,在console一栏找到maven库的界面 4.在本地仓库右键,重新绑定索引,这样就能在pom.xml中

Linux系统下启动MySQL报错:Neither host 'localhost.localdomain' nor 'localhost' could be looked up with

Linux系统下启动MySQL报错:Neither host 'localhost.localdomain' nor 'localhost' could be looked up with 摘要 Linux系统下安装完MySQL,启动MySQL报错:Neither host 'localhost.localdomain' nor 'localhost' could be looked up with... Linux系统下装完MySQL,然后重启动时报错: 解决方法:  查看cat /etc/h

Linux系统下启动MySQL报错:Neither host 'localhost.localdomain' nor 'localhost' could be looked up with

Linux系统下启动MySQL报错:Neither host 'localhost.localdomain' nor 'localhost' could be looked up with 摘要 Linux系统下安装完MySQL,启动MySQL报错:Neither host 'localhost.localdomain' nor 'localhost' could be looked up with... Linux系统下装完MySQL,然后重新启动动时报错: 解决方法:  查看cat /etc

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语句中的库名.表名.字段名等等要严格区分大