一个数据库里有一个表,在用MySQL Workbench执行select * from t_uc时报错:
Error Code: 1146. Table 'uu.t_uc' doesn't exist其中uu是数据库名,t_uc是表名。 用mysql命令行可以查询,但是用其他客户端或程序无法读取。这个库里的其他表都没问题。只有这个表出现这种情况,我看了一下表内容和表结构,没发现什么可疑情况!请问可能是什么原因?
先确认下登陆权限吧,在你部署应用程序的机子上在命令行远程登录,并可执行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,表名的话应该也不是问题,因为是同一套程序。 哎!我找了半天原因,还没找到原因,实在太奇怪了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。