【报错内容】:
ERROR 1356 (HY000): View 'sys.host_summary' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
【原因】
进行过一次数据库全库备份 --all-databases 并且将dump文件进行了source全库导入。
在5.7x的mysql版本中,使用此参数是不会备份sys系统库的,但在使用 mysqldump 在执行 --all-databases 会清空 mysql.proc 导致 sys 无法正常使用。将备份的数据导入进去后 mysql.proc 表被清空,就会导致mysql的sys出现找不到视图的情况,这是一个 BUG。
【解决方法一】
使用root用户下执行
检查初始化试图
#进入到mysql安装目录执行mysql_upgrade
/mysql/bin/mysql_upgrade
【解决方法二】
下载mysql sys库源码:GitHub - mysql/mysql-sys: The MySQL sys schema
下载好后将文件上传至mysql节点进行解压。
文件内容
mysql5.7x 版本第二步执行 sys_57.sql文件,mysql5.6x 版本第二步执行 sys_56.sql文件。
##从解压路径的地址进入到mysql客户端
mysql -uroot -p******
##切换sys库
use sys
##安装前操作,内容是禁用掉 sql_log_bin,不记录到日志中。
source before_setup.sql
##创建 sys 库,实际会调用其他文件夹中的 sql 语句# 来进行表、视图、存储过程、触发器的创建
source sys_57.sql
##安装后的操作,内容是将 sql_log_bin 恢复到操作前的状态
source after_setup.sql