Navicat导出SQL数据报错1577,Cannot proceed because system tables used by Event Scheduler where found damage
前言
今早在win10用Navicat导出云服务器MySQL数据SQL文件时,Navicat报错1577
Cannot proceed because system tables used by Event Scheduler where found damaged at server start
操作系统:centos7
MySQL版本:5.7.28
报错原因
因为数据库的表的版本与数据库版本不符合。因为从mysql5.1版本开始,系统表的结构进行了很大的调整,必须要进行升级系统表结构才能正常使用。
解决方法:
运行MySQL安装bin目录下的mysql_upgrade
我之前是用yum安装的MySQL,所以安装目录在/www/server/mysql/
如果是用源码安装的话,目录应该在/usr/local/mysql/
如果找不到mysql_upgrade的话,建议用find命令查找咯
find / -name “mysql_upgrade”
运行命令:
/www/server/mysql/bin/mysql_upgrade -uroot -p
输入密码即可
运行后可能会报错如下(如果没报错请忽略):
Checking if update is needed.
Checking server version.
Error: Server version (5.7.28-log) does not match with the version of
the server (5.7.27) with which this program was built/distributed. You can
use --skip-version-check to skip this check.
问题不大,提示说加一个参数就好了 --skip-version-check
命令如下:
/www/server/mysql/bin/mysql_upgrade -uroot -p --skip-version-check
执行完,重启数据库
systemctl restart mysqld
这样就解决问题了?
还没有,因为执行完了之后,数据库密码重置了
你会发现你的本地数据库也连不上去了,用原来的密码也用不了。
问题不大
找到你的MySQL配置文件/etc/my.cnf
然后修改里面password=your password
再次重启数据库,然后你就可以用baiyu这个密码连入你的MySQL了,接着修改你的密码。
最后你就可以发现Navicat又可以导出SQL数据了
解决问题,皆大欢喜~~~