Mysql中大小写敏感问题导致的MySqlError1146Tabeldoen’texist错误
2023-06-13 09:15:28 时间
MySqlError1146Tabeldoen"texist,一般情况下是表不存在,或者表名写错了、权限问题。
今天遇到了这个问题,仔细核对几遍后,确认无误,又在phpMyAdmin里尝试select,可以查询出数据。又核对权限,确认该mysql用户具有所有权限。那这个错误是怎么回事呢?查询了一些资料后,发现如果mysql引擎不对可能会造成真实存在的表却无法访问,但是发现引擎都是myisam。
这下犯愁了,错误出在哪里呢?又找了半天,仍然无果。无辜的看着这段报错代码,发呆了半天,突然发现了一个已经被我忽视的细节,详细的报错代码为Tabel ABCdoen"texist,这里的表名为大写,而数据库中的表名为abc(马冬注:只为举例,没有此表),是小写的。在phpMyAdmin用大写表名ABC尝试select,果然报错提示Tabel ABCdoen"texist。
到这里,问题清楚可见,原因是一个被我忽略的问题:windows服务器下,mysql的数据表是大小写不敏感的,而linux服务器默认情况下大小写敏感。如果linux服务器要修改成大小写不敏感,可以找到/etc/my.cnf,在[mysqld]下加入一行:lower_case_table_names=1。(马冬注:lower_case_table_names默认情况下为0,及表名大小写敏感;修改为1,即大小写不敏感)。如果没有修改服务器配置的权限,那就注意出现的每一个表名都要大小写一致。
不注意小细节,往往会浪费很多时间的。细节决定成败。
相关文章
- MySQL导入Excel文件的快捷方法(mysql导入xls文件)
- MySQL 错误日志:查看注意事项(mysql错误日志查看)
- MySQL中计算字段长度的方法(mysql计算字段长度)
- MySQL: 尽求解之道?(mysql问号)
- 服务器解决MySQL无法连接远程服务器问题(mysql连接不上远程)
- 解决MySQL数据库字符编码问题:使用UTF8函数(mysqlutf8函数)
- 解决MySQL故障:一步一步排查错误(mysql排错)
- 解决Mysql占用内存过大问题(mysql占用内存过大)
- 查看MySQL用户名:一个简明实用的指南(如何查看mysql用户名)
- 深入浅出Java配置MySQL数据库(java配置mysql)
- 一步步升级:Yum 更新 MySql(yum升级mysql)
- 解决MySQL编码问题:小白初探(修改mysql编码)
- MySQL分区技术在日期处理中的应用(mysql分区日期)
- 解决MySQL远程连接问题(mysql远程无法连接)
- 解决MySQL数据库安装问题(安装不了mysql数据库)
- MySQL数据库问题,如何解决?(mysql数据库题)
- MySQL面试问题,有哪些值得重视的?(mysql 面试问题)
- MySQL新建数据库:一招制数据库不愁!(mysql新建数据库命令)
- 掌握Mysql数据库,开启你的新知识之旅!(mysql数据库 培训)
- MySQL中回滚操作详解(mysql中什么是回滚)
- 码MySQL 中获取准确的错误码(c mysql 获取错误)
- MySQL自动排序让C程序优雅管理数据(c mysql自动排序)
- 解决MySQL数据库程序中使用AS调用问题(as调用mysql)
- MySQL中双竖线连接快速汇总结果的聚合函数(mysql中双竖线连接)
- 指定字符的数据行(mysql中删除不包含)
- MySQL XtraDB高效稳定的数据库引擎(mysql xtradb)
- 如何解决MySQL下载问题(mysql下载问题)
- MySQL备份中序列号备份问题(mysql不能备份序列号)
- 如何避免MySQL下单出现负数问题(mysql 下单负数)