Mysql的Table doesn't exist问题及解决

目录
  • Mysql Table doesn't exist问题
    • 修改mysql数据库配置
  • Mysql: "Table 'xx.XXXX' doesn't exist"
    • 尝试解决
    • lower_case_table_names 参数值
    • 我的解决方式
  • 总结

Mysql Table doesn't exist问题

程序连接Mysql的时候总是提示表不存在,Table 'xx.QRTZ_LOCKS' doesn't exist

查询了下,数据库明明是有这个表的,搞了许久,

网上据说是因为数据库对表的大小写设置问题,设置忽略大小写即可,

修改mysql数据库配置

在服务运行目录找到my.ini或者my.cnf文件

打开文件,找到[mysqld]在下面增加一行

lower_case_table_names=1 (0:大小写敏感;1:大小写不敏感)

重启MySQL服务

Mysql: "Table 'xx.XXXX' doesn't exist"

当通过Spring-Data JPA进行数据库查询时,后台返回查询语句,将查询语句粘贴,到数据库执行.返回Table 'xx.XXXX' doesn't exist 提示数据库没有这张表.

尝试解决

原因,服务器是Linux环境下,因此对数据库表名大小写敏感,在使用别名时会出现查询失败.因此需要将数据库配置文件进行修改,使其大小写不敏感.

如果忘记了配置文件的位置,可以通过find / -name my.cnf进行查找

在配置文件中,添加

# 是否允许数据对象不区分大小写,0敏感,1敏感 
lower_case_table_names=1

重启mysql应用后再试,问题解决.

查看服务状态

service mysqld status

重启服务命令

service mysqld restart

如果就此解决,请忽略以下内容…

以上方式仅支持尚未有数据表出现时修改,否则启动失败.错误日志

Different lower_case_table_names settings for server ('1') and data dictionary ('0').
Data Dictionary initialization failed.

lower_case_table_names 参数值

0 创建的数据库对象,根据创建时指定大小写形式储存,同时在比较区分大小写。如果你有不区分大小写的文件名(如Windows或Mac系统)的系统上运行MySQL这个变量设置为0。如果使用–lower-case-table-names=0 不区分大小写的文件系统强制此变量为0 并MyISAM使用不同的字母表访问 表名,则可能导致索引损坏。

1 表名以小写形式存储在磁盘上,名称比较不区分大小写。MySQL在存储和查找时将所有表名转换为小写。

2 数据库对象根据创建时指定的大小写形式存储在磁盘上,但MySQL在查找时将它们转换为小写。名称比较不区分大小写。这仅适用于不区分大小写的文件系统!

我的解决方式

向Oracle低头,将表名改为大写

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • MySQL 常见错误分析与解决方法

     一.Can't connect to MySQL server on 'localhost'(10061)? 翻译:不能连接到localhost 上的mysql?分析:这说明"localhost"计算机是存在的,但在这台机器上却没提供MySQL服务.?需要启动这台机器上的MySQL服务,如果机子负载太高没空相应请求也会产生这个错误.?解决:既然没有启动那就去启动这台机子的mysql.如果启动不成功,多数是因为你的my.ini配置的有问题.重新配置其即可.?如果觉得mysql负载异常,

  • MySql报错Table mysql.plugin doesn’t exist的解决方法

    一般产生原因是手工更改my.ini的数据库文件存放地址导致的 mysql服务启动时候找不到内置数据库"mysql",找不到那张表,就包了上述错误. 解决办法:将安装目录或之前的目录里面的"mysql"数据库拷贝到新的数据库文件存放目录即可

  • MySQL部署时提示Table mysql.plugin doesn’t exist的解决方法

    今天部署了免安装版的MySQL,出现了Table 'mysql.plugin' doesn't exist的问题,苦恼了好久,终于在网上找到了解决方案,现整理一下给大家分享: 系统环境:Win10 64位 MySQL版本:mysql-5.7.17-winX64 部署的步骤就是按照网上说的: 1:修改环境变量path,增加值C:\Program Files\mysql-5.7.17-winX64\bin 2:修改my-default.ini,重命名为my.ini,修改文件内容: # basedir

  • Mysql的Table doesn't exist问题及解决

    目录 Mysql Table doesn't exist问题 修改mysql数据库配置 Mysql: "Table 'xx.XXXX' doesn't exist" 尝试解决 lower_case_table_names 参数值 我的解决方式 总结 Mysql Table doesn't exist问题 程序连接Mysql的时候总是提示表不存在,Table 'xx.QRTZ_LOCKS' doesn't exist 查询了下,数据库明明是有这个表的,搞了许久, 网上据说是因为数据库对表

  • django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决

    一.现象 最近在数据库中删除了一张表,重新执行python manage.py migrate时出错,提示不存在这张表.通过查找相关的资料,最后找到了相关的解决方法,下面话不多说了,来一起看看详细的介绍吧 二.原因 主要是因为django一般在第一次迁移的时候新建表,后面的都不会新建表,而是只检查字段等等的变化,所以我们既然已经删除了这张表,django检查这张表的字段变化的时候就自然报错了. 三.解决办法 解决办法仍然是执行python manage.py makemigrations和pyt

  • Mysql报Table 'mysql.user' doesn't exist问题的解决方法

    目录 发现问题 问题起源: 排查记录: 总结 发现问题 前天突然出现了这个问题,花费了很多时间去解决问题.记录一下,希望能给大家避坑 问题起源: 周六,windows本地的mysql还能正常使用,周日早上,使用navicat连接本地mysql,一直报连接拒绝. 排查记录: 1 首先博主,去查看了一下本地Mysql服务是否启动,经过查看发现Mysql服务关闭,且无法启动. 2 因需要先确定Mysql服务无法启动的原因, 所以,去查看了一下系统的日志. 3 确定了问题,是因为Mysql自身报错,信息

  • mysql alter table修改表命令整理

    MYSQL ALTER TABLE命令用于修改表结构,例如添加/修改/删除字段.索引.主键等等,本文章通过实例向大家介绍MYSQL ALTER TABLE语句的使用方法, MySQL ALTER语法如下: ALTER [IGNORE] TABLE tbl_name alter_spec [, alter_spec ...] alter_specification: ADD [COLUMN] create_definition [FIRST | AFTER column_name ] or ADD

  • mysql alter table命令修改表结构实例

    mysql实例之使用alter table命令修改表结构 mysql alter table语句可以修改表的基本结构,例如添加字段.删除字段.添加主键.添加索引.修改字段数据类型.对表重命名等等操作,本文章通过两个简单的实例向大家介绍mysql alter table的使用方法  实例一:使用ALTER TABLE命令向表中添加字段.修改字段类型以及设置主键. 首先创建一个表,SQL语句如下: mysql> CREATE TABLE myTable( -> ID SMALLINT ->

  • mysql alter table命令修改表结构实例详解

    mysql alter table语句可以修改表的基本结构,例如添加字段.删除字段.添加主键.添加索引.修改字段数据类型.对表重命名等等操作,本文章通过两个简单的实例向大家介绍mysql alter table的使用方法.  实例一:使用ALTER TABLE命令向表中添加字段.修改字段类型以及设置主键. 首先创建一个表,SQL语句如下: mysql> CREATE TABLE myTable( -> ID SMALLINT -> ); 使用desc命令查看表结构: mysql>

  • mysql alter table 修改表命令详细介绍

    MySQL ALTER语法如下: ALTER [IGNORE] TABLE tbl_name alter_spec [, alter_spec ...] alter_specification: ADD [COLUMN] create_definition [FIRST | AFTER column_name ] or ADD INDEX [index_name] (index_col_name,...) or ADD PRIMARY KEY (index_col_name,...) or AD

  • MySQL truncate table语句的使用

    Truncate table语句用来删除/截断表里的所有数据 和delete删除所有表数据在逻辑上含义相同,但性能更快 类似执行了drop table和create table两个语句 mysql> select * from students_bak; +-----+----------+--------+---------+ | sid | sname | gender | dept_id | +-----+----------+--------+---------+ | 101 | zha

  • Mysql ALTER TABLE加字段的时候到底锁不锁表

    目录 Mysql5.6版本之前 Mysql5.6版本之后 总结 注意 Mysql5.6版本之前 更新步骤 对原始表加写锁 按照原始表和执行语句的定义,重新定义一个空的临时表. 对临时表进行添加索引(如果有). 再将原始表中的数据逐条Copy到临时表中. 当原始表中的所有记录都被Copy临时表后,将原始表进行删除.再将临时表命名为原始表表名. 这样的话整个DDL过程的就是全程锁表的. Mysql5.6版本之后 更新步骤 对原始表加写锁 按照原始表和执行语句的定义,重新定义一个空的临时表.并申请ro

  • mysql server 5.5连接不上的解决方法

    mysql连接不上了的解决办法,供大家参考,具体内容如下 昨天用着好好的,第二天突然连接不上了mysql数据库,并且报错: 仔细想了想原因很有可能是因为不经意间删除了mysql自带表中的一些数据信息导致的表损坏,之前也是把oracle给弄坏了..... 所以不要随便的删除系统的表信息 进入服务,找到mysql,发现服务已经停止,重新启动该服务,发现无法重启,如下 无法重启报1067 并且在dos命令中进入msyql也是不可以的 然后我去事务管理器中查看了一下系统的日志信息发现mysql出现了错误

随机推荐