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

相关推荐
执笔画情ora13 分钟前
Postgresql管理-杀会话还是取消会话?
数据库·oracle
清风徐来QCQ20 分钟前
redis 面试可能会问的问题
数据库·redis·面试
这辈子谁会真的心疼你21 分钟前
如何修改照片定位信息?详细介绍两个方法
数据库
Oueii24 分钟前
构建一个基于命令行的待办事项应用
jvm·数据库·python
小瓦码J码35 分钟前
PostgreSQL pg_stat_statements 性能分析利器(二)全表扫描导致物理IO爆炸
数据库·postgresql
2501_9454235440 分钟前
如何为开源Python项目做贡献?
jvm·数据库·python
2401_8845632442 分钟前
使用Flask快速搭建轻量级Web应用
jvm·数据库·python
清风徐来QCQ43 分钟前
Redis以及如何在springboot中使用
数据库·redis·缓存
xcLeigh43 分钟前
告别 Excel 繁琐操作!Metabase让数据可视化触手可及
mysql·docker·信息可视化·excel·数据可视化·metabase·cpolar
编程饭碗1 小时前
【Mysql日期字段】
数据库·mysql