用navicat连接网络上一台mysql服务器时发生了如下错误:
“ERROR 1577 : Cannot proceed because system tables used by Event Scheduler were found damaged at server start”。目标服务器版本5.1.28,在打开数据库和进行数据备份或数据传输的时候出现这个错误提示。
错误原因:
目标服务器做了升级,但是升级对mysql系统表结构进行了更改,添加了新权限或特性。目标服务器应同时更新系统表,以确保它们的结构最新。但很显然他们没有这么做。
解决方案:
首先备份mysql数据库,然后按照下面的程序操作。
在Windows系统中,MySQL分发包括mysql_fix_privilege_tables.sql SQL脚本,你可以用mysql客户端来运行。例如,如果MySQL安装到C:\Program Files\MySQL\MySQL Server 5.1,命令应为:
C:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysql -u root -p mysql
mysql> SOURCE C:/Program Files/MySQL/MySQL Server 5.1/share/mysql_fix_privilege_tables.sql
如果安装到其它目录,相应地更改路径名。
mysql命令将提示输入root密码;按照提示输入密码。运行时候不用管出错信息,完成退出,重启Mysql服务器就可以
linux解决方案,没有试过,摘录如下:
在Unix或Unix类系统中,运行mysql_fix_privilege_tables脚本来更新系统表:
shell> mysql_fix_privilege_tables
你必须在服务器运行时执行该脚本。它试图连接本机上用root运行的服务器。如果root账户需要密码,在命令行中按下述方法给出密码:
shell> mysql_fix_privilege_tables–password=root_password
mysql_fix_privilege_tables脚本可以执行将系统表转换为当前格式的任何动作。运行时你可能会看见一些Duplicate column name警告;你可以忽略它们。
运行完脚本后,停止服务器并重启。