解决 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');

相关推荐
丶西红柿丶5 分钟前
Mysql分区
数据库
檀越剑指大厂22 分钟前
让数据触手可及采用Chat2DB+cpolar重构数据库操作体验
数据库·重构
朝九晚五ฺ24 分钟前
【Redis学习】Redis中常见的全局命令、数据结构和内部编码
数据库·redis·学习
qq_508823401 小时前
金融数据库--下载全市场股票日线行情数据
数据库·金融
DemonAvenger1 小时前
MySQL性能优化案例分析:从问题到解决方案
数据库·mysql·性能优化
杨云龙UP1 小时前
20250922_(Linux操作系统上)Oracle、MySQL、MariaDB、SQL Server常用连接命令与基础查询
mysql·oracle·sqlserver·mariadb
老华带你飞2 小时前
寝室快修|基于SprinBoot+vue的贵工程寝室快修小程序(源码+数据库+文档)
java·数据库·vue.js·spring boot·小程序·毕设·贵工程寝室快修
fendouweiqian2 小时前
idea中使用database TLS异常处理
数据库·https·intellij-idea