MySQL根用户root密码忘掉后的处理方法

MySQL根用户root密码忘记后的处理方法

 

Windows 平台下的步骤

  1. 以管理员的身份登录到windows 系统

  2.windows 服务管理工具或任务管理器来停止MySQL 服务

  3. 建立一个单行的文本文件,保存为c:\mysql\pwdhf.txt,

  内容是SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');

  4. 打开一个控制台窗口,得到DOS 命令提示符

  5. 假设你的MySQL 主目录是C:/mysql/bin

  则运行c:\mysql\bin\mysqld-nt --init-file=c:\mysql\pwdhf.txt

  如果是用安装精灵安装的MySQL 数据库服务器,则需要通过服务管理工具来做改动,

  需要找到并添加默认设置文件,

  然后运行mysqld-nt --defaults-file="path\my.ini" --init-file=c:\mysql\pwdhf.txt

  6. 停止MySQL 数据库服务, 然后再重新以正常模式启动MYSQL

  7. 可以正常登录到服务器.

  Unix 环境下的步骤

  1.root 或启动mysqld 进程的用户身份登录到系统

  2. 找到并定位包含Mysql 服务进程号的文件.pid, 该文件一般可能

  /var/lib/mysql/,/var/run/mysqld/,/usr/local/mysql/data/ 中,

  文件名一般是 机器名.pid” 的格式。在壳下使用命令

  kill 'cat /mysql-data-directory//host-name.pid' 来结束mysql 服务进程

  3. 建立一个单行文本文件,可以任意命名,假设是mysql-init

  保存在用户主目录~ 下就可以,

  文件内容是SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');

  4. 重新带选项启动mysql, 具体命令为mysqld_safe --init-file=~/mysql-init &,

  正常后应该删除mysql-init 文件

  5. 可以用新密码连接数据库。

  通用的解决办法:

  - 使用客户端交互工具mysql 来设置,步骤如下:

  1. 停止mysql 服务,并重新以--skip-grand-table --user=root

  选项来启动mysql 服务(windows 下可以省略--user=root 选项)

  2. 用客户端交互工具mysql 连接服务器,shell>mysql -u root

  3. 在客户端交互工具mysql 中执行下列语句:

  mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd')

  -> WHERE User='root';

  mysql> FLUSH PRIVILEGES;

  4. 可以用newpwd 作为密码来登录服务器