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

相关推荐
中国lanwp16 分钟前
在Maven中替换文件内容的插件和方法
服务器·数据库·maven
菜菜小蒙16 分钟前
【MySQL】内置函数
数据库·mysql
2401_8368365917 分钟前
mysql故障排查与环境优化
数据库·mysql·adb
惊起白鸽45019 分钟前
mysql故障排查与生产环境优化
数据库·mysql
YUNYINGXIA24 分钟前
MySQL故障排查与生产环境优化
mysql
帅的被人砍xxx32 分钟前
mariadb 升级 (通过yum)
数据库·mariadb
通义灵码36 分钟前
MySQL 开发的智能助手:通义灵码在 IntelliJ IDEA 中的应用
数据库·mysql·阿里云·intellij-idea·通义灵码
不穿铠甲的穿山甲1 小时前
mysql-Java手写分布式事物提交流程
java·分布式·mysql
mxs05231 小时前
抢购Python代码示例与技术解析
开发语言·数据库·python
Hadoop_Liang1 小时前
openEuler24.03 LTS下安装MySQL8.0.42
数据库·mysql·openeuler