免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2460 | 回复: 0
打印 上一主题 下一主题

mysql_fix_privilege_tables [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-23 15:55 |只看该作者 |倒序浏览

首先说明一下,本人对于mysql不是很熟悉,以下纯粹是摸索性操作,欢迎高手点拨。
mysql_fix_privilege_tables,是一个mysql下的命令,是为了解决权限升级中的问题,
问题也不算从这方面解决的,但最终是把这个密码问题给解决掉了;
今天把通达的OA系统从2.8升级到3.0上去,由于升级以前思路已经确实,各表的结构以及数据都考虑到了,所以升级过后觉得还算可以;但有一个问题,就是修改通达oa的原始密码myoa888,通常,做这些用phpmyadmin来做是最简单不过的,但这可恶的,到这个关键的时刻却遇见了警告:
Warning: Your privilege table structure seems to be older than this MySQL version!
Please run the script mysql_fix_privilege_tables
that should be included in your MySQL server distribution to solve this problem!
这样看来,明显是因为mysql的权限表结构版权老于当前的mysql版本,以前那么多都没遇到过,奇怪了;是不是用了phpmyadmin高版本的原因,用的是phpmyadmin2.9版本,确实是最新的,找个老版本试试?找了老半天,找了一个2.7的,试了一下,还是提示上述问题。再找更老的版本,找不到了,这条路,暂时视为行不通。另外想办法。
既然是mysql_fix_privilege_tables这个脚本,那就找这个脚本来解决不就行了?到网上搜索一下,没有人提供这个脚本下载,呵,找mysql大本营去,果然不错,最新版本的中文说明书,非常详细啊!这是mysql5.1的中文说明书地址,很详细的;http://dev.mysql.com/doc/refman/5.1/zh/index.html
从上述地址中找到了以下说明:

5.4. mysql_fix_privilege_tables:升级MySQL系统表
一些MySQL发布对mysql数据库中的系统表的结构进行了更改,添加了新权限或特性。当你更新到新版本MySQL,你应同时更新系统表,以确保它们的结构最新。首先备份mysql数据库,然后按照下面的程序操作。
在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警告;你可以忽略它们。
运行完脚本后,停止服务器并重启。
在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 mysqlmysql> SOURCE C:/Program Files/MySQL/MySQL Server 5.1/scripts/mysql_fix_privilege_tables.sql
如果安装到其它目录,相应地更改路径名。
mysql命令将提示输入root密码;按照提示输入密码。
在Unix中,当mysql处理mysql_fix_privilege_tables.sql script脚本中的语句时,你可能会看见一些Duplicate column name警告;你可以忽略它们。
运行完脚本后,停止服务器并重启。
既然有这个方法,就试一把;下载最新的mysql for windows版本,到虚拟机上安装一把(在本机上装,影响现在的mysql,不方便),安装时,注意自定义安装或者全部安装,不然,脚本安装不上去的。安装后,找到mysql_fix_privilege_tables这个脚本,按照上述命令执行了一下,果然,警告之声大作,和说明上说的一样,但执行后,重启mysql服务,还是不行,phpmyadmin还是依旧提示那个问题。说明命令脚本没有生效。但在虚拟机中执行时,ok的字符非常多,说明是生效的。
既然这样,那就把本地的mysql表拷贝到虚拟机上,执行,警报之声少了许多,说明还是起了一定的作用。执行之后,把mysql拷贝到本地机,重启oa服务,这样一来,不好了,phpmyadmin访问不了,mysql命令行也进不去了,用myoa888,进不去,用空也进不去,只有这两种可能;进不去,天知道运行一下,怎么把密码改成什么了?嘿。放弃,也行不通。不是不锲而不舍,时间不多了,两个小时以后,oa要正常运行了。
既然这样,就再想一想办法,在网上找了一些修改mysql密码的办法,很多,一试,果然不错,有这么多办法,我走那么多弯路干什么?呵;其实,走弯路不见得不好,走弯路可以接触到很多新的东西,其乐无穷啊!
最后还是用phpmyadmin在mysql数据库中的user表,修改了root的mdb密码值,以上所走的弯路,有机会时再摸索一把。
有些莫名其妙,但本人对mysql纯粹是业余级别的,只是用到的时候,摸索一把。希望高手指导!


相关mysql资料站:
mysql中文站 http://imysql.cn/
mysql中文论坛 http://bbs.mysql.cn/


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/1102/showart_1839964.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP