`
xiaoboss
  • 浏览: 653517 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

数据库时客户端提示 Cannot proceed because system tables used by Event Scheduler

 
阅读更多

在打开数据库或者用数据库管理工具(Navicat)时客户端提示“Cannot proceed because system tables used by Event Scheduler were found damaged at server start”
造成此原因是MySQL服务器的当前版本不兼容所有数据库的表

解决方法

1、linux、windows下解决方法类似
$PATH/mysql/bin/mysql_upgrade - u root -p
例如:/usr/local/mysql/bin/mysql_upgrade - u root -p     [回车输入密码即可]

$PATH mysql安装路径

执行完后停止mysqld后再重新启动mysqld一次,问题即可解决。

具体说明参考:http://dev.mysql.com/doc/refman/5.1/en/mysql-upgrade.html

 

 

 

今天将Mysql升级到了5.1.31,用Navicat打开数据库添加数据,出现了1577错误,提示信息:ERROR 1577 (HY000): Cannot proceed because system tables used by Event Scheduler were found damaged at server start。

   查看手册(5.4. mysql_fix_privilege_tables:升级MySQL系统表),一些MySQL发布对mysql数据库中的系统表的结构进行了更改,添加了新权限或特性。当你更新到新版本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解决方案,没有试过,摘录如下:

UnixUnix类系统中,运行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警告;你可以忽略它们。

运行完脚本后,停止服务器并重启。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics