Mysql访问视图报错 ERROR 1356 (HY000)

Mysql访问视图报错:ERROR 1356 (HY000)

1、报错信息:

ERROR 1356 (HY000): View ‘sys.processlist’ references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them

2、原因:

经过排查发现,20231221号时进行过一次数据库全库备份 --all-databases 并且将dump文件进行了source全库导入。
在5.7x的mysql版本中,使用此参数是不会备份sys系统库的,但在使用 mysqldump 在执行 --all-databases 会清空 mysql.proc 导致 sys 无法正常使用。将备份的数据导入进去后 mysql.proc 表被清空,就会导致mysql的sys出现找不到视图的情况。这是一个 BUG,并且只存在于 MySQL 5.7.x !
详细请参考:https://mp.weixin.qq.com/s/08rM3yhaaDclYtOL1yJVwA
mysql官网信息:
https://dev.mysql.com/doc/refman/5.7/en/sys-schema-usage.html
在这里插入图片描述

问题现象截图:

在这里插入图片描述

3、解决办法:

先使用第一种,不行再使用第二种
第一种:
使用root用户下执行
检查初始化试图
/mysql/bin/mysql_upgrade -uroot -p
执行完毕后再去客户端进行测试

第二种:
下载mysql sys库源码:https://github.com/mysql/mysql-sys

下载好后将文件上传至mysql节点进行解压。
文件内容
在这里插入图片描述

mysql5.7x 版本第二步执行 sys_57.sql文件,mysql5.6x 版本第二步执行 sys_56.sql文件。

注意事项:需要在解压路径下进入mysql客户端

进入到mysql客户端:

切换sys库

use sys

安装前操作,内容是禁用掉 sql_log_bin,不记录到日志中。

source before_setup.sql

创建 sys 库,实际会调用其他文件夹中的 sql 语句# 来进行表、视图、存储过程、触发器的创建

source sys_57.sql

安装后的操作,内容是将 sql_log_bin 恢复到操作前的状态

source after_setup.sql

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值