MySQL 密码的恢复方法之一
1.首先确认服务器出于安全的状态, 也就是没有人能够任意地连接 MySQL 数据库. 因为在重新设置 MySQL 的 root 密码的期间, MySQL 数据库完全出于没有密码保护的 状态下, 其他的用户也可以任意地登录和修改 MySQL 的信息. 可以采用将 MySQL 对外的端口封闭, 并且停止 Apache 以及所有的用户进程的方法实现服务器的准安全状态. 最安全的状态是到服务器的 Console 上面操作, 并且拔掉网线.
2.修改 MySQL 的登录设置:
- ? https://www.jb51.net/article/100766.htm#
- # vi /etc/my.cnf
在 [mysqld] 的段中加上一句: skip-grant-tables 保存并且退出 vi.
3.重新启动 mysqld
- ? https://www.jb51.net/article/100766.htm#
- # /etc/init.d/mysqld restart ( service mysqld restart )
4.登录并修改 MySQL 的 root 密码
- ? https://www.jb51.net/article/100766.htm#
- mysql> USE mysql ;
- mysql> UPDATE user SET Password = password ( 'new-password' ) WHERE User = 'root' ;
- mysql> flush privileges ;
- mysql> quit
5.将 MySQL 的登录设置修改回来
- ? https://www.jb51.net/article/100766.htm#
- # vi /etc/my.cnf
将刚才在 [mysqld] 的段中加上的 skip-grant-tables 删除
保存并且退出 vi.
6.重新启动 mysqld
- ? https://www.jb51.net/article/100766.htm#
- # /etc/init.d/mysqld restart ( service mysqld restart )
7.恢复服务器的正常工作状态
将步骤一中的操作逆向操作. 恢复服务器的工作状态.
MySQL 密码的恢复方法之二
如果忘记了 MySQL 的 root 密码, 可以用以下方法重新设置:
1. KILL 掉系统里的 MySQL 进程;
- ? https://www.jb51.net/article/100766.htm#
- killall -TERM mysqld
2. 用以下命令启动 MySQL, 以不检查权限的方式启动;
- ? https://www.jb51.net/article/100766.htm#
- safe_mysqld --skip-grant-tables &
3. 然后用空密码方式使用 root 用户登录 MySQL;
- ? https://www.jb51.net/article/100766.htm#
- mysql -u root
4. 修改 root 用户的密码;
- ? https://www.jb51.net/article/100766.htm#
- mysql> update mysql.user set password=PASSWORD('新密码') where User='root';
- mysql> flush privileges;
- mysql> quit
重新启动 MySQL, 就可以使用新密码登录了
MySQL 密码的恢复方法三(推荐)
有可能你的系统没有 safe_mysqld 程序(比如我现在用的 ubuntu 操作系统, apt-get 安装的 mysql) , 下面方法可以恢复
1. 停止 mysqld;
- ? https://www.jb51.net/article/100766.htm#
- /etc/init.d/mysql stop
- (您可能有其它的方法, 总之停止 mysqld 的运行就可以了)
2. 用以下命令启动 MySQL, 以不检查权限的方式启动;
- ? https://www.jb51.net/article/100766.htm#
- mysqld --skip-grant-tables &
3. 然后用空密码方式使用 root 用户登录 MySQL;
- ? https://www.jb51.net/article/100766.htm#
- mysql -u root
4. 修改 root 用户的密码;
- ? https://www.jb51.net/article/100766.htm#
- mysql> update mysql.user set password=PASSWORD('newpassword') where User='root';
- mysql> flush privileges;
- mysql> quit
重新启动 MySQL
- ? https://www.jb51.net/article/100766.htm#
- /etc/init.d/mysql restart
就可以使用新密码 newpassword 登录了.
*** 在 Linux 环境下 mysql 的 root 密码忘记解决方法(三种)- 推荐第三种
来源: http://www.bubuko.com/infodetail-2668580.html