开发者社区> 问答> 正文

一个库里有一个表无法selet:报错

一个数据库里有一个表,在用MySQL Workbench执行select * from t_uc时报错:

Error Code: 1146. Table 'uu.t_uc' doesn't exist
其中uu是数据库名,t_uc是表名。 用mysql命令行可以查询,但是用其他客户端或程序无法读取。这个库里的其他表都没问题。只有这个表出现这种情况,我看了一下表内容和表结构,没发现什么可疑情况!请问可能是什么原因?

展开
收起
kun坤 2020-06-08 19:15:31 765 0
1 条回答
写回答
取消 提交回答
  • 先确认下登陆权限吧,在你部署应用程序的机子上在命令行远程登录,并可执行use uu;命令。 若上面没有问题,在mysql配置文件中检查下是否有lower_case_table_names=1,没有的话加上,重启mysql后再试试。######看看是否是权限问题######uu應該是表的scheme? 客戶端可以不用uu這個? 你試下: select * from dbo.t_uc  ######带上全称:select * from 库.表

    ######权限倒是没问题,我用的是root 不知怎么的,客户端执行select * from又可以了。但是程序读取还是提示相同的问题。 可是奇怪的是这个程序读取另外一台机器同样的库却正常。我觉得问题应该不是出在程序上,但是两台机器相同的这个库我也对比了一下,没发现什么区别。两个mysql的版本相同,又都是用同一个sql文件导入的。哎!######权限问题吧,注意IP和域名的区别######用root不一定就没有权限问题,呵呵, mysql中“用户名@ip”表示一个用户,用户名相同,ip不同,可能不是一个用户,%可以表示匹配所有。 一般来讲,默认的root不能远程登录的。 你可以对比下你两个数据库中mysql.user表看看。######忘了重要的一点,若数据库在linux上,是不是表明大小写问题造成的。######我看了一下,两台mysql的root的权限都有 %  localhost  127.0.0.1 这三个。权限也都是Y,密码也都有。

    ######两台mysql都是linux,表名的话应该也不是问题,因为是同一套程序。 哎!我找了半天原因,还没找到原因,实在太奇怪了。

    2020-06-08 19:15:48
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载