开发者

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

目录
  • mysql Table doesn't exist问题
    • 修改mysql数据库配置
  • Mysql: "Table 'xx.XXXX' does开发者_mssql2008n'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进行数据库查询时,后台返回查询语句,将查询语句粘贴,到数据库执行.返回Thttp://www.devze.comable 'xx.XXXX' doesn't exist 提示数据库没有这张表.

    尝试解决

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

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

    在配置文件中,添加

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

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

    查看服务python状态

    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使用不同的字母表访问 表名,则可能导致索引损坏。

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

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

    我的解决方式

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

    总结

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

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新数据库

    数据库排行榜