[MySQL][ODBC 3.51 Driver][mysqld-5.5.37-log]Table 'ldk2.T_User' doesn't exist问题解决

在Linux系统上,遇到MySQL报错Table 'ldk2.T_User' doesn't exist,原因是表名大小写敏感。检查发现数据库存在表t_user,通过对比源码发现是大小写不匹配问题。Linux系统默认MySQL表名区分大小写,而Windows系统默认不区分。解决方案包括修改源码、更改数据库表名或调整MySQL配置文件中的lower_case_table_names参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


笔者最近在做网站测试的时候遇到一个问题。在首页登录进去之后无法正确跳转到主页,而是报了数据库错误。

报错的内容如下:




Table找不到。


经过检查,服务器上的mysql配置正常,mysql中已经导入该应用所必须的数据库表,且数据库连接正常。



然后再打开源代码


发现其中一句,“select * from T_User............”,  然后再对比服务器mysql里的表t_user , 发现原来是大小写敏感的问题。


由于笔者用的是Linux系统的服务器,其系统默认的mysql下表名是区分大小写,而其他同学用的Windows下本地mysql默认是表名不区分大小写。 


补充一下Linux和Windows下mysql的大小写规则:

Linux:

数据库名与表名严格区分大小写

表的别名严格区分大小写

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

变量名严格区分大小写

Windows:

均不区分大小写


怎么解决呢,当然可以修改源码,修改数据库里的表名,还可以通过修改配置文件来解决。

我们可以通过配置文件的lower_case_table_names这个参数来控制。

Windows:

编辑mysql安装目录下的my.ini文件,在【mysql】下添加 lower_case_tale_names = 0 (备注: 0为大小写敏感,1为大小写不敏感, 默认为1)

Linux:

编辑/etc/my/cnf文件,在【mysqld】下添加 lower_case_tale_names 参数,并设置相应的值 (备注: 0为大小写敏感,1为大小写不敏感, 默认为0)


最后,希望这篇文章能够对大家以后遇到类似问题时有所帮助。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值