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 子句中包含子查询
如何修复“ERROR 130 (HY000):文件格式不正确”
MySQL Cluster ERROR 1296 (HY000): 从 NDBCLUSTER 得到错误 157 'Unknown error code'