解决 MySQL 错误 1356 (HY000)

当你遇到 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 them 错误时,通常是由于 MariaDB 或 MySQL 版本更新导致的视图引用问题。

示例

UPDATE mysql.user SET Host='%' WHERE User='root';

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 them

解决方案

更新 MariaDB 的 mysql.global_priv 表

在 MariaDB 10.4 及以上版本中,mysql.user 表已被替换为视图,实际数据存储在 mysql.global_priv 表中。

步骤:

  • 更新 mysql.global_priv 表:

UPDATE mysql.global_priv SET Host='%' WHERE User='root';

  • 刷新权限:

FLUSH PRIVILEGES;

使用 ALTER USER 命令重置密码

对于 MariaDB 10.4.4 及以上版本,可以使用 ALTER USER 命令来重置用户密码。

示例:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';

使用 SET PASSWORD FOR 命令重置密码

对于 MariaDB 10.4.4 以下版本,可以使用 SET PASSWORD FOR 命令来重置用户密码。

示例:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpassword');

相关推荐
远方16093 小时前
53-Oracle sqlhc多版本实操含(23 ai)
大数据·数据库·sql·oracle·database
ZHOU_WUYI3 小时前
Python Minio库连接和操作Minio数据库
数据库·ragflow
安 当 加 密3 小时前
如何通过密钥管理系统实现数据库、操作系统账号和密码的安全管理
网络·数据库·安全
蓝黑20203 小时前
MySQL查询语句的通配符*
mysql·db
nbsaas-boot4 小时前
基于存储过程的MySQL自动化DDL同步系统设计
数据库·mysql·自动化
摇一摇小肉包的JAVA笔记4 小时前
Redis如何解决缓存击穿,缓存雪崩,缓存穿透
数据库·redis·缓存
wsdchong之小马过河4 小时前
2025虚幻引擎文件与文件夹命名规律
java·数据库·虚幻
东方-教育技术博主5 小时前
spring boot数据库注解
数据库·spring boot·oracle
全栈小56 小时前
【数据库】在线体验KingbaseES平台,零门槛学习,并快速体验Oracle增改查全基础功能
数据库·学习·oracle
189228048616 小时前
NY339NY341美光固态闪存NW841NW843
大数据·数据库