忘记了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服务的“属性”看到原因。 转载请说明出处……. |
|