MySQL: "Table 'xx.XXXX' doesn't exist"
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash
免费下载资源
·
问题
当通过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低头,将表名改为大写
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e
added ecosystem file for PM2 4 年前
5def40a3
Add host customization support for the NodeJS version 4 年前
更多推荐
已为社区贡献1条内容
所有评论(0)