MySql VIEW ERROR'查看'tablet_001.hisrec'引用无效的表或列或函数或视图的定义者/调用者缺乏使用它们的权利'

Posted

技术标签:

【中文标题】MySql VIEW ERROR\'查看\'tablet_001.hisrec\'引用无效的表或列或函数或视图的定义者/调用者缺乏使用它们的权利\'【英文标题】:MySql VIEW ERROR 'View 'tablet_001.hisrec' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them'MySql VIEW ERROR'查看'tablet_001.hisrec'引用无效的表或列或函数或视图的定义者/调用者缺乏使用它们的权利' 【发布时间】:2013-08-11 10:26:20 【问题描述】:

何时执行

SELECT count(*) FROM hisrec

出现这个错误

查看“tablet_001.hisrec”引用无效的表或列或 视图的函数或定义者/调用者无权使用它们

如果执行此操作

SELECT COD FROM hisrec

出现同样的错误

但如果执行此操作

SELECT * FROM hisrec

一切正常:S

为什么??

我是 root.... 拥有所有权限!

【问题讨论】:

hisrec 是如何定义的? 是一个普通视图,在任何计算机上相同的视图(其他服务器)工作正常,但在某些客户端失败......(对不起我的英语) 【参考方案1】: 我遇到了同样的错误。该错误是因为用户(root用户除外)没有使用该权限的权限 表。 所以首先授予用户使用该表的权限。使用 root 用户授予权限。
grant select on database_name.table_name to user@localhost ;

您可以通过同样的方式授予更新或插入权限。

【讨论】:

【参考方案2】:

我在 mysql 5.6.x 上遇到了类似的问题。

select * from view 工作。

select count(*) from view 导致 OP 的错误消息。

通过将 Order By 子句从视图定义中的 select ... 中取出来解决。

【讨论】:

应该是“select count(*) from view” 您可以编辑您的原始帖子...这对于未来的读者来说比添加评论更有用。谢谢!【参考方案3】:
SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS
WHERE TABLE_SCHEMA = 'tablet_001' AND TABLE_NAME = 'hisrec';

看看你的观点,看看有什么问题,如果你不知道在这里发布。

【讨论】:

我只是好奇,这个命令有什么特别之处是SHOW CREATE VIEW hisrec \G 无法检索到的吗?

以上是关于MySql VIEW ERROR'查看'tablet_001.hisrec'引用无效的表或列或函数或视图的定义者/调用者缺乏使用它们的权利'的主要内容,如果未能解决你的问题,请参考以下文章

MySql VIEW ERROR'查看'tablet_001.hisrec'引用无效的表或列或函数或视图的定义者/调用者缺乏使用它们的权利'

Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist(

Mysql报错Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't

MySQL Error--InnoDB Table mysqlinnodb_index_stats has length mismatch in the column

SQLSTATE[HY000]: General error: 1114 The table '/home/mysql/data3007/tmp/#sq

mysql查看某个数据库下的所有视图