分享

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

 王者之心图书 2015-05-11

忘记了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用户:

UnixLinux根用户身份进行登录。找到包含服务器进程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===========================-->

 

二.另一种修改方法

同样需用Adminstratorroot用户登录系统。这种方式在任何平台上通用,就是通过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服务的“属性”看到原因。

 

转载请说明出处…….

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多