MySQL忘记root密码的找回方法

(1)登录到数据库所在服务器,手工kill掉MySQL进程:

kill ‘ cat /mysql-data-directory/hostname.pid‘

其中,/mysql-data-directory/hostname.pid指的是MySQL数据目录下的.pid文件,它记录了MySQL服务的进程号。

(2)使用--skip-grant-tables选项重启MySQL服务:

[[email protected] mysql]# ./bin/mysqld_safe --skip-grant-tables --user=root &
[1] 17299
[[email protected] mysql]# 151006 13:14:41 mysqld_safe Logging to ‘/alidata/log/mysql/error.log‘.
151006 13:14:41 mysqld_safe Starting mysqld daemon with databases from /alidata/server/mysql/data

其中--skip-grant-tables选项的意思是启动MySQL服务的时候跳过权限表认证。启动后,连接到MySQL的root将不需要命令。

(3)用空密码的root用户连接到MySQ,并且更新root口令:

[[email protected] ~]# mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.5.37-log MySQL Community Server (GPL)

Copyright (c) 2000, 2014, 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> set password = password(‘ysj123‘);
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
mysql> update mysql.user set password=password(‘123456‘) where user=‘root‘ and host=‘localhost‘;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

此时,由于使用了--skip-grant-tables选项启动,使用“set password”命令更改密码失败,直接更新user表的password字段后更改密码成功。

(4)刷新权限表,使得权限认证重新生效:

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

(5)重新用root登录时,必须输入新口令:

[[email protected] ~]# mysql -uroot
ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO)
[[email protected] ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.5.37-log MySQL Community Server (GPL)

Copyright (c) 2000, 2014, 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中,密码丢失后无法找回,只能通过上述方式修改密码。

别忘了给个赞哦!~

时间: 2024-10-12 15:45:29

MySQL忘记root密码的找回方法的相关文章

CentOS7下mysql忘记root密码的处理方法

vi /etc/my.cnf,在[mysqld]中添加skip-grant-tables例如:[mysqld]skip-grant-tablesdatadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sock 重启mysqlservice mysql restart 使用用户无密码登录mysql -uroot -p (直接点击回车,密码为空) 选择数据库use mysql; 修改root密码update user set authentication_

【转】mysql忘记root密码的解决方法

本文收集于本人的笔记本,由于找不到原文出处.在此省略,如哪位知道可以联系我加上. 方法一:在windows下:1.打开命令行(DOS)窗口,停止mysql服务: net stop mysql 2.在DOS下面进入mysql的安装路径下的 bin目录,如 D:\mysql\bin 3. 输入并执行命令: mysqld-nt --skip-grant-tables (此命令执行后该窗口就停住了) 4.另外打开一个命令行窗口,执行mysql >use mysql >update user set p

MySql忘记root密码的解决方法

修改密码 1.新安装的数据库设置密码 mysqladmin -u root password 123456 2.如果你的root现在有密码了(123456),那么修改密码为abcdef的命令是: mysqladmin -u root -p password abcdef 注意,命令回车后会问你旧密码,输入旧密码123456之后命令完成,密码修改成功. 或者 mysqladmin -u root -p123456 password www123 MYSQL 忘记口令的解决办法 方法一: 如果 My

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

方法一: 1.在DOS窗口下输入net stop mysql5 或 net stop mysql 2.开一个DOS窗口,这个需要切换到mysql的bin目录.一般在bin目录里面创建一个批处理1.bat,内容是cmd.exe运行一下即可就切换到当前目录,然后输入mysqld-nt --skip-grant-tables; 3.再开一个DOS窗口,mysql -u root 4.输入: 复制代码代码如下: use mysql update user set password=password("n

Windows下mysql忘记root密码的解决方法(装载)学习

Mysql版本:5.1\5.5 1. 首先检查mysql服务是否启动,若已启动则先将其停止服务,可在开始菜单的运行,使用命令: net stop mysql 打开第一个cmd窗口,切换到mysql的bin目录,运行命令: mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server 5.1\my.ini" --console --skip-grant-tables 注释: 该命令通过跳过权限安全检查,开启mysql服务,这样连接

指定mysql的数据库保存路径及忘记root密码的解决方法

在mysql安装目录下的data目录中发现有几个系统目录,把my.ini文件中的datadir值设为此目录. 更改后的主要配置为: [mysqld]basedir=C:/databases/mysqldatadir=D:/databases/mysql/data basedir: 为你数据库程序放置目录 datadir :为你数据库数据目录 重新安装服务,启动服务之后,登录成功. 注:如果想把datadir指定到其他目录,则需要把安装目录下的data目录下的文件与目录拷贝到你所指定的目录下. 总

mysql忘记root密码连接本地库

今天想做个小项目,决定用mysql数据库,但是好久没用mysql了,也忘掉了当时建库时root密码是什么了,找到了一篇文章,在这里记录下. Windows下mysql忘记root密码的解决方法: Mysql版本:5.1.55-community MySQL Community Server (GPL) 1. 首先检查mysql服务是否启动,若已启动则先将其停止服务,可在开始菜单的运行,使用命令: net stop mysql 或者在windows任务管理器中结束mysqld.exe进程,或者在控

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.登录MySQL所在的服务器,手工kill掉MySQL进程 kill `cat $mysql_data_dir/hostname.pid` $mysql_data_dir/hostname.pid为MySQL数据目录,它记录了MySQL服务的进程号. [[email protected] ~]# ps -ef |grep mysql root      6602     1  0 21:39 ?        00:00:00 /bin/s