忘记了Mysql的root用户的密码,怎么办?
时间:2007-12-25 来源:jacklvkena
忘记了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()函数进行密码更改。
<!--=========================Jack.Hao===========================-->
二.另一种修改方法
同样需用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服务的“属性”看到原因。
转载请说明出处…….