MySQL报错 table “xxx” doesn‘t exit的解决

 更新时间:2023年10月13日 09:02:54   作者:Hansel.Wn  
本文主要介绍了MySQL报错 table “xxx” doesn‘t exit的解决,主要原因是英文字母大小写敏感导致,下面就来介绍一下解决方法,感兴趣的可以了解一下

问题描述

以前项目的数据库部署在云端Windows Server系统上,最近有需求要把数据库移到CentOS7的服务器上,数据转移到时候一切正常,并且使用Navicat for MySQL访问数据库的时候也没有异常,但是项目实际运行起来的时候接口一直在报错,根据错误提示信息发现,好多表不存在:

报错原因

MySQL在Windows下不区分大小写,但是在Linux系统中默认是区分大小写的,上述问题就是由于英文字母大小写敏感导致的。

MySQL大小写敏感配置相关的两个参数,lower_case_file_systemlower_case_table_names

查看当前MySQL的大小写敏感配置,可以使用如下语句

lower_case_file_system

代表当前系统文件是否大小写敏感,只读参数,无法修改。ON 大小写不敏感,OFF 大小写敏感。这个参数描述的是数据库当前所在的操作系统的文件目录是否大小写敏感,OFF表示大小写敏感,ON表示大小写不敏感。此参数是只读的。

lower_case_table_names

代表表名是否大小写敏感,可以修改,参数有0、1、2三种。

0 大小写敏感。(Unix,Linux默认) 创建的库表将原样保存在磁盘上,SQL语句也会原样解析。
1 大小写不敏感。(Windows默认) 创建数据库表时,MySQL将所有的库表名转换成小写存储在磁盘上。 SQL语句同样会将库表名转换成小写。 如需要查询以前创建的表,即便执行select * from Testtable,也会被转换成select * from testtable,致使报错表不存在。
2 大小写不敏感(OS X默认) 创建的库表将原样保存在磁盘上, 但SQL语句将库表名转换成小写。

解决方法

修改配置文件,在Linux系统中修改my.cnf文件,在Windows下修改my.ini文件,新增或修改以下内容。

lower_case_table_names = 0 或 lower_case_table_names = 1
``
- 重启MySQL服务
```shell
> service mysqld restart

如果要将lower_case_table_names从0(敏感)修改为1(不敏感)时,必须先对旧数据表的表名进行处理,把所有数据库的表名先改为小写,最后再设置lower_case_table_names为1,否则依然会出现无法找到表名的问题。

到此这篇关于MySQL报错 table “xxx” doesn‘t exit的解决的文章就介绍到这了,更多相关MySQL table “xxx” doesn‘t exit内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL的增删查改语句用法示例总结

    MySQL的增删查改语句用法示例总结

    这篇文章主要介绍了MySQL的增删查改语句用法示例总结,是对MySQL学习的基本知识点的一个归纳,需要的朋友可以参考下
    2015-05-05
  • 浅谈sql数据库去重

    浅谈sql数据库去重

    关于sql去重,我简单谈一下自己的理解和经验,如果各位有建议或有不明白的欢迎多多指出。
    2014-08-08
  • MySQL数据库迁移实战

    MySQL数据库迁移实战

    数据库迁移是指将一个数据库从一种系统转移到另一种系统或从一台服务器迁移到另一台服务器的过程,本文主要介绍了MySQL数据库迁移实战,感兴趣的可以了解一下
    2023-11-11
  • 详解Linux终端 MySQL常用操作指令

    详解Linux终端 MySQL常用操作指令

    这篇文章主要介绍了Linux终端 MySQL常用操作指令的相关知识,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-02-02
  • Windows 本地安装 Mysql8.0图文教程

    Windows 本地安装 Mysql8.0图文教程

    本文介绍了如何在Windows本地安装Mysql8.0。从下载Mysql8.0安装包,运行安装程序,配置初始设置到启动Mysql服务等详细步骤进行了讲解。
    2023-04-04
  • MySQL中查询、删除重复记录的方法大全

    MySQL中查询、删除重复记录的方法大全

    mysql中删除重复记录的方法有很多种,下面这篇文章主要给大家总结了在MySQL中查询、删除重复记录的方法大全,文中给出了详细的示例代码供大家参考学习,需要的朋友下面来一起看看吧。
    2017-06-06
  • 在MySQL数据库中使用C执行SQL语句的方法

    在MySQL数据库中使用C执行SQL语句的方法

    与PostgreSQL相似,可使用许多不同的语言来访问MySQL,包括C、C++、Java和Perl。从Professional Linux Programming中第5章有关MySQL的下列章节中,Neil Matthew和Richard Stones使用详尽的MySQL C接口向我们介绍了如何在MySQL数据库中执行SQL语句。
    2012-10-10
  • mysql sharding(碎片)介绍

    mysql sharding(碎片)介绍

    这篇文章主要介绍了mysql sharding(碎片)介绍,本文讲解了Sharding的应用场景一般都哪些、Sharding与数据库分区(Partition)的区别等内容,需要的朋友可以参考下
    2015-03-03
  • CentOS6.4上使用yum安装mysql

    CentOS6.4上使用yum安装mysql

    这篇文章主要为大家详细介绍了CentOS6.4上使用yum安装mysql图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • MySQL数据库大小写敏感的问题

    MySQL数据库大小写敏感的问题

    今天小编就为大家分享一篇关于MySQL数据库大小写敏感的问题,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03

最新评论