忘记 Mysql 的 root 密码

阅读目录

  • 解决方法一
  • 解决方法二

当忘记Mysql的密码时,我们尝试去登录会报以下错误

[[email protected] ~]# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO)

解决方法一 

  • 停止mysql服务
[[email protected] ~]# service mysqld stop
Stopping mysqld:                                           [  OK  ]
  • 编辑/etc/my.cnf  在[mysqld]字段下添加参数  skip-grant
[[email protected] ~]# vim /etc/my.cnf
[mysqld]
skip-grant
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
  • 重启Mysql
[[email protected] ~]# service mysqld restart
Stopping mysqld:                                           [  OK  ]
Starting mysqld:                                           [  OK  ]
  • 登入Mysql
[[email protected] ~]# mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

mysql>
  • 更新root密码
mysql> use mysql;                         //进入mysql数据库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> update user set password=password(‘123456‘)where user=‘root‘;           //更新root密码为 123456
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3  Changed: 3  Warnings: 0

mysql> flush privileges;                 //重新刷权限表到内存
Query OK, 0 rows affected (0.00 sec)
  • 编辑/etc/my.cnf 在[mysqld]字段下去掉参数 skip-grant 并重启mysql服务 
[[email protected] ~]# vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[[email protected] ~]# service mysqld restart
Stopping mysqld:                                           [  OK  ]
Starting mysqld:                                           [  OK  ]

解决方法二

  • 停止mysql服务
[[email protected] ~]# service mysqld stop
Stopping mysqld:                                           [  OK  ]
  • 输入命令:mysqld_safe --skip-grant-tables &
[[email protected] ~]# mysqld_safe --skip-grant-tables &
  • 登入Mysql
[[email protected] ~]# mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

mysql>
  • 更新root密码
mysql> use mysql;                         //进入mysql数据库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> update user set password=password(‘123456‘)where user=‘root‘;           //更新root密码为 123456
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3  Changed: 3  Warnings: 0

mysql> flush privileges;                 //重新刷权限表到内存
Query OK, 0 rows affected (0.00 sec)
  • 重启mysql
[[email protected] ~]# service mysqld restart
150906 10:21:51 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
Stopping mysqld:                                           [  OK  ]
Starting mysqld:                                           [  OK  ]

好了,大功告成!以上的两种解决方法第二种比较方便但是原理都是一样的

再来说说当这样来进行恢复密码的时候应该注意哪些问题:

  1. 首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库,因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的状态下,其他的用户也可以任意地登录和修改MySQL的信息
  2. 可以采用将MySQL对外的端口封闭,并且停止Apache以及所有的用户进程的方法实现服务器的准安全状态!最安全的状态是到服务器的Console上面操作,并且拔掉网线进行操作
  3. 更新密码过后一定要去删除在[mysqld]字段下的参数 skip-grant
时间: 2024-12-21 03:26:17

忘记 Mysql 的 root 密码的相关文章

Centos下忘记mysql的root密码的解决方法

Centos下忘记mysql的root密码的解决方法 一:(停掉正在运行的mysql) [[email protected] ~]# service mysql stop 二:使用 “--skip-grant-tables”参数重新启动mysql [[email protected] ~]# mysqld_safe --skip-grant-tables & [1] 23810 Starting mysqld daemon with databases from /var/lib/mysql 三

忘记mysql 的 root密码怎么办

如果忘记mysql的root密码,可以按下面操作即可.1. vim /etc/my.cnf  在[mysqld]字段下添加参数  skip-grant  2. service mysqld restart3. mysql -uroot 4. use mysql;update user set password=password('your password') where user='root';flush privileges;5.  vim /etc/my.cnf  注释掉 skip-gra

windows下忘记mysql的root密码

1.停止mysql 2.命令行启动mysqlmysqld --defaults-file="c:\mysql\mysql server 5.1\my.ini" --console --skip-grant-tables 3.无密码登录后执行以下sqlupdate mysql.user set password = password('123456') where user = 'root';flush privileges; 一切恢复正常! windows下忘记mysql的root密码

windows下忘记mysql的root密码解决方法(图文)

在windows下忘记mysql的root密码对于很对新手来说,也是会经常遇到的,我也刚好遇到啦,参考网上的解决办法,自己又整理啦一下. 1.首先需要查看mysql的服务是否启动. 打开cmd窗口,输入命令:net start 2.如果mysql服务已经启动,则需要先停止mysql服务. 命令:net stop mysql 3.然后需要切换到自己本地mysqld的安装目录后,执行以下命令: mysqld --defaults-file="C:\Program Files\MySQL\MySQL

Linux下忘记MySQL的root密码的解决方法

恢复方法之一 1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库. 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的 状态下,其他的用户也可以任意地登录和修改MySQL的信息.可以采用将MySQL对外的端口封闭,并且停止Apache以及所有的用户进程的方法实现服务器的准安全状态.最安全的状态是到服务器的Console上面操作,并且拔掉网线. 2.修改MySQL的登录设置: vim /etc/my.cnf 在[mysqld]的段中加上一

忘记mysql的root密码,如何重设密码

引言:MySQL有时候忘记了root密码不要慌,可以不用原密码就能重设密码 Linux: 1.编辑MySQL配置文件my.cnf vi /etc/my.cnf    #编辑文件,找到[mysqld],在下面添加一行skip-grant-tables [mysqld] skip-grant-tables :wq!  #保存退出 service mysqld restart  #重启MySQL服务 PS:也可以不修改配置文件,直接用以下命令启动MySQL,以不检查权限的方式启动:    safe_M

忘记Mysql的root密码怎么办?

有时候忘掉了mysql的root密码,这种情况下,如何重置root的密码呢? 找到并编辑mysql的my.ini配置文件,在mysqld节点中添加上skip-grant-table. 如下: [mysqld]# These let you safely reset the lost root password.skip-grant-table 保存好修改,重启mysql服务. 现在就能不需要root密码的情况下连接上数据库.然后执行下面的更新: USE mysql;UPDATE USERSET 

忘记MySQL的root密码的解决方法

经常会有朋友或者同事问起,MySQL 的 root 密码忘了,不知道改怎么办. 其实解决方法很简单,下面是详细的操作步骤. (1)修改配置文件my.cnf,在配置文件[mysqld]下添加skip-grant-tables,重启MySQL服务即可免密码登录 其中--skip-grant-tables 选项前面曾经介绍过,意思是启动 MySQL 服务的时候跳过权限表认证. 启动后,连接到 MySQL 的 root 将不需要口令. # SERVER SECTION # ---------------

忘记Mysql的root密码的处理办法

1,停止MYSQL服务,CMD打开DOS窗口,输入 net stop mysql 2,在CMD命令行窗口,进入MYSQL安装目录 比如E:\Program Files\MySQL\MySQL Server 5.0\bin 示范命令: 输入 e:回车, 输入cd "E:\Program Files\MySQL\MySQL Server 5.0\bin" 注意双引号也要输入,这样就可以进入Mysql安装目录了. 3,进入mysql安全模式,即当mysql起来后,不用输入密码就能进入数据库.