免费注册 查看新帖 |

Chinaunix

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

忘记了Mysql的root用户的密码,怎么办? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-12-25 18:31 |只看该作者 |倒序浏览

忘记了Mysql的root用户的密码,怎么办?

一.安全修改方法
Windows用户:
如果你此时登录到Windows使用的不是Adminstrator用户,先“注销”后,切换到Adminstrator用户,再进行下面的步骤!
1.如果Mysql正在运行:
安装版:则进行cmd命令行,输入net stop mysql命令 或在"控制面板"-->"管理工具"-->"服务"-->mysql-->停掉它。
            如果在停止的过程中发生错误,可按"ctrl+alt+delete"打开"任务管理器",查看是否有mysq的进程,有结束掉它。
免安装版:打开”任务管理器”,直接结束掉Mysql的服务进程。
2.创建用于初始密码的文本文件,文件名随意(在这我使用mysql-init.txt)
  SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');  
3.进行cmd命令行,执行如下命令:
  安装版:mysqld-nt.exe --defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini" --init-file=e:\mysql-init.txt
  解压缩版:mysqld-nt.exe --init-file=C:\mysql-init.txt

  :以上的目录需根据自己安装目录进行相应的调整
这种方式启动的,它并不会启动Mysql服务,而是作为一个进程在运行。这时如果要结束,需打开“任务管理器”结束mysql进程,而net stop mysql是不起作用的!
4.到此,你可以刚设置的新密码正常登录了!(注意:要先启动服务或执行mysqld-nt)

Linux或Unix用户:
以Unix或Linux根用户身份进行登录。找到包含服务器进程ID的.pid文件。一般情况下,文件名是以mysqld或系统的主机名开始。
通常在mysql的数据库所在的目录中。常见位置是/var/lib/mysql/、/var/run/mysqld/和/usr/local/mysql/data/。通常在mysql的数据库所在的目录中。

1.杀掉正在运行的mysql进程:
kill `cat /mysql-data-directory/host_name.pid`         //其中目录需根据实际情况进行替换

2.创建文本文件,写入如下命令:(这使用~/mysql-init)
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newPassword');

3.用特殊的“--init-file=~/mysql-init”选项重启MySQL服务器:
mysqld_safe --init-file=~/mysql-init &

注:如是4.1以前老版本需使用old_password()函数进行密码更改。


二.另一种修改方法
同样需用Adminstrator或root用户登录系统。这种方式在任何平台上通用,就是通过mysql客户端重新设置root密码(但该方法不安全,所以不推荐)。

Window系统:
1.停掉正在运行的mysql(方法可参照上边)
2.使用 “--skip-grant-tables --user=root”参数重新启动mysql
压缩版:mysqld-nt.exe --skip-grant-tables --user
安装版:mysqld-nt.exe --defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini"--skip-grant-tables --user
         上述命令正确执行后,root密码为空
3.登录mysql
Mysql –u root
4.在mysql客户端发出下述语句,修改为你想要的密码:
UPDATE mysql.user SET Password=PASSWORD('新密码') WHERE User='root';
FLUSH  PRIVILEGES;          //刷新权限表

Linux系统
1.停掉正在运行的Mysql
2.使用 “--skip-grant-tables --user=root”参数重新启动mysql
/usr/local/mysql/bin/mysqld_safe --skip-grant-tables &
3.net start登录mysql
Mysql –u root
4.在mysql客户端发出下述语句:
UPDATE mysql.user SET Password=PASSWORD('新密码') WHERE User='root';
FLUSH  PRIVILEGES;          //刷新权限表


结束语
1.免安装版的是没有my.ini文件的,“服务管理器”更没有mysql的服务,要启动直接双击运行mysqd-nt即可。
2.可执行telnet localhost 3306 来查看mysqld是否已正常启动。
3.net start mysql  可启动mysql服务  net stop mysql 可停止mysql服务,执行这两个命令与在mysql服务上直接操作作用相同。
4.如果是安装版,在我们启动服务的时候它会自动为我们执行mysqld-nt命令,可使用“服务管理器”中查看mysql服务的“属性”看到原因。

转载请说明出处…….




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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP