ERROR 1356 (HY000): View 'mysql.user' references invalid table(s) or column(s) or function(s) or def

Posted

技术标签:

【中文标题】ERROR 1356 (HY000): View \'mysql.user\' references invalid table(s) or column(s) or function(s) or definitioner/invoker of view缺少使用它们的权限【英文标题】:ERROR 1356 (HY000): View 'mysql.user' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use themERROR 1356 (HY000): View 'mysql.user' references invalid table(s) or column(s) or function(s) or definitioner/invoker of view缺少使用它们的权限 【发布时间】:2021-02-26 15:47:31 【问题描述】:

我已尝试查询但错误 有人解决了这个错误吗?

MariaDB [mysql]> UPDATE user SET Host='%' WHERE User='root';

ERROR 1356 (HY000): View 'mysql.user' references invalid table(s) or columns(s) or function(s) or definitioner/invoker of view没有使用它们的权限

【问题讨论】:

【参考方案1】:

MariaDB-10.4+ mysql.user 是一个视图而不是一个表。

它建议停止复制旧博客来进行任何与 MySQL 和 MariaDB 中的身份验证相关的更改,这些机制正在更新并且不再适用。请务必查看官方文档。

使用SET PASSWORD 或ALTER USER 管理用户身份验证。

同时修改用户名的用户/主机组件将使触发器、事件、插件、授权、角色等与组合用户名不同步(又名损坏)。因此,只需 DROP/CREATE 用户而不是操纵他们。

【讨论】:

我想我现在正面临这个问题。我复制了所有使用旧版本 MariaDB 创建的旧 Wordpress 数据库(通过 mysqldump,然后通过 source 恢复)。我想现在老用户无权访问数据库。我现在应该如何使所有旧用户能够访问正确的数据库?即使我以 root 身份登录,并发出命令:SELECT user FROM mysql.user; 它也会出现上述错误。解决办法是什么? @PKHunter 请将此作为一个新问题提出,并包括源和目标版本等详细信息。 @danblack 真正的MVP!我们最近从 MariaDB 10.3 升级。没想到机制会改变,像往常一样使用旧的。应该知道的更好,非常感谢! 我也应该提到RENAME USER。

以上是关于ERROR 1356 (HY000): View 'mysql.user' references invalid table(s) or column(s) or function(s) or def的主要内容,如果未能解决你的问题,请参考以下文章

ERROR 1356 (HY000): View 'mysql.user' references invalid table(s) or column(s) or function(s) or def

ERROR 1349 (HY000): View 的 SELECT 在 FROM 子句中包含子查询

MySQL5.7 使用 mysqldump 重要闭坑事项

如何修复“ERROR 130 (HY000):文件格式不正确”

MySQL Cluster ERROR 1296 (HY000): 从 NDBCLUSTER 得到错误 157 'Unknown error code'

mysql ERROR 1396(HY000)