2011-11-26 回答
最近mysql要卸载后重装,但是到最后一步后启动服务一直不行,总的来说,卸载重装出现问题有3个原因:
1.services.msc 里已经有同名的服务;
2.mysql 的my.ini 配置与安装时的设置有出入(多次安装mysql 出现这个问题);
3.卸载mysql 后,注册表还留有相关服务信息,现在给出一个可行的解决办法;
删除服务一般有两个办法:
办法一:用sc.exe 这个windows 命令, 开始——运行——cmd.exe,然后输入sc就可以看到了,使用办法很简单:sc delete "服务名" (如果服务名中间有空格,就需要前后加引号)如针对上面的:sc delete mysql501;
办法二:直接进行注册表编辑打开注册表编辑器,找到下面的键值:
hkey_local_machine\system\currentcontrolset\services 一般服务会以相同的名字在这里显示一个主健,直接删除相关的键值便可;
特殊情况:
1、如果服务显示的是rundll32.exe,并且这个文件是位于system32 目录下,那么就不能删除这个rundll32.exe文件,它是windows系统的文件,这时只要清除相关的服务就可以了;
2、如果一个服务删除了马上又自动建立了,说明后台有进程在监视、保护,需要先在进程管理器中杀掉相应的进程,或者启动后按f8,到安全模式下删除;
如果进入services.msc启动mysql服务遇到1067错误,或是安装mysql到最后一步卡住,先不用急着卸载mysql,它不让我启动,偶就用它把东西清理干净再让它自己消失。
cmd 进入mysql 的bin目录敲入mysqld --remove(windows 7/vista 用户请用管理员权限打开cmd),这时候,服务就乖乖的闪边去了,也不用麻烦的去清注册表(- -,虽然后面我们也要清注册表信息)
进入mysql的安装目录,我们还要用它提供的my.ini找出它“犯罪”的根源,看到basedir和datadir了吧,basedir不用解释了吧,最变态的就是datadir了。windows 7 默认是放在c:/programdata/mysql/mysql server 5.1/data/下。偶的就是这个文件指向不对,造成的,所以,你的mysql 出现1067 的话,记得找根据这个信息找到它,然后shift+d 把它丢的远远的(多次安装,有可能有多个哦,记得全部x掉)
ok,现在直接进入控制面板,是时候该把mysql请出我们的硬盘了;
删除mysql目录及目录下的所有文件,文件夹;
它还不死心,我们进入注册表regedit,在根节点单击右键,查找mysql,见一个灭一个;
ok,现在你重新安装mysql,还出现文章标题所描述的情况,请你goto到1,认真的做一遍;