Mysql 问题:1146 - Table 'xxx' doesn't exist
MySQL版本:5.7.28
操作系统:Win7 32位
问题描述:
因为重装系统,重新安装数据库后,用 Navicat Premium 12 打开数据库弹出提示框:
1146 - Table ‘performance_schema.session_variables’ doesn’t exist。
原因:
1、数据库的系统表丢失
2、或者用户自己的某个数据库文件夹丢失
大致是因为由于重新安装mysql,导致data文件夹更新后无法导入data数据包中的数据库。
主要是缺少data目录下mysql导致,mysql库没有拷贝过去?
解决方法:
所幸的是,另外一台电脑上有相同版本的备份文件。
我这里提示的是缺少“performance_schema”,所以:
第一种方法:
直接复制之前的mysql和performance_schema 这2个文件夹到现有的数据库data目录下,然后重启数据库,问题解决!
另外一种错误:
1146 - Table ‘mysql.proc’ doesn’t exist。
解决方法:
复制 data/mysql/proc.frm, proc.MYD, proc.MYI 三个文件到你现有的数据库data/mysql/ 目录下,然后重启数据库。
Navicat Premium 打开数据库一切正常了:
另外几种方法:
1、打开终端进入mysql/bin目录下执行命令:
mysql_upgrade -u root -p --force
(此方法我用了,没有用,大神们可以解释为什么没有用吗?谢谢!)
2、从其它相同版本的mysql数据库导出 proc 的数据通过命令行导入进去。
建议:要常备份数据库!切记!