关于MYSQL升级中授权表的问题

不指定
2008-8-4 14:46 by:果面 PC应用 » 网络应用 本站原创 | |
前段时间做的qeeke网,今天突然说表出问题了。吓死人了。仔细问了一下,原来是有人胡搞了一把。把root给改了。这下有的玩了。真厉害呀。在不建立超管的情况下,改这东西,而且,我设置的root可是只能本机登陆呀。不知道这样他改有什么用。郁闷。没办法了。重建系统表吧。
用mysql自带的mysql_insert_db去建立,搞定后,直接用phpmyadmin进入,然后点"权限"想改密码时,他告诉我说授权表比当前的mysql版本低,不让偶操作。干……想掐死他了。继续郁闷……,上边有说明让运行mysql_fix_privilege_tables这个脚本。试着运行,无效,老是给我报错。急了。google了一下,说是有一个mysql_fix_privilege_tables.sql可以用。效果一样。直接打开这个文件,copy到phpmyadmin里用SQL执行。再报让偶选择数据库,晕死。打开mysql 这个库,再运行。kao,牛B呀。还报错。对照着我的机器看了一下,发现少了两个表,proc相关的两个,直接只把这两个表相关的语句搞出来执行。OK,运行成功了。再试,还是给我报刚才的错误。开始喷火了……,没办法了。到官方去找吧。查了一下,发现官方上说的也是用这个文件搞定的升级问题。最后一招了。命令行进入mysql,然后,use命令打开mysql库,然后source这个脚本文件,运行完成。看记录,发现还是有报错,不管了,试了一下。晕死。竟然没问题了。彻底服了……………………

总结了一下,升级时的做法:
1.用mysql_insert_db重新建立系统库文件,此时注意,此命令并不建立授权表,或者说,他建立的授权表还是老的,这时就会出现我遇到的问题了。
2.找到mysql_fix_privilege_tables.sql脚本位置,如果没有,到官方找一下吧。linux版本都会自已带的。win 版本好像是没有。
3.命令行进入mysql,use mysql打开mysql系统库,然后 source mysql_fix_privilege_tables.sql 别管他报的错误,因为有些东西是已经有的,所以会报错。这个不用管。
经过这几步,基本上就搞定了。反正偶是这样搞好的。呵呵

其中发现的问题,其实就算出这个问题了,影响并不是很大,你用phpmyadmin打开mysql库,里边有一个权限,在这里你一样可以增加用户之类的管理操作。
还有,不要在phpmyadmin或是其它的管理工具里运行mysql_fix_privilege_tables.sql脚本文件,因为这些工具在运行脚本时,都是遇到错误就停止了。这样你是无法更新成功的。在命令行运行,他会报出来错误,但会一直运行到结束。这样就OK了。
评论(0) 引用(0) 阅读(1860)