开发者社区> 1840121942114024> 正文

mysql忘记root密码,修改root密码

简介: mysql数据库密码验证是特别的严格,因为关系数据安全,那么如果你的mysql数据库用户名或者密码记不清了,那么数据就丢失了吗?当然不是,开发者已经为我们用户考虑到了,如何解决呢?下面有一些找回用户名密码的方法,小白在此献丑了!
+关注继续查看

修改root密码的方法:
方法一:使用mysqladmin命令:

a. 没有设置过密码:
$mysql_home/bin/mysqladmin -u root password "newpass"

b. 设置过初始密码:
$mysql_home/bin/mysqladmin -u root password oldpass "newpass"

方法二:使用SQL语句修改数据库
首先使用的是像Linux的救援模式一样的超级管理模式

Ⅰ. 先停止mysql服务,然后,通过下面的方式进入超级管理模式

Ⅱ. 进入超级管理模式的方法:
a. $mysql_home/bin/mysqld --skip-grant-tables &

b. 修改mysql的配置文件(一般是/etc/my.cnf),在[mysqld]模块下添加skip-grant-tables,如下

[mysqld]
port        = 3306
socket      = /tmp/mysql.sock
datadir = /usr/local/mysql/var
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 1024
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 4M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 64M
thread_cache_size = 128
query_cache_size = 128M
tmp_table_size = 128M
**skip-grant-tables**

然后,启动mysql

Ⅲ. 通过$mysql_home/bin/mysql免密码直接进入数据库,修改mysql.user表
通过下面的SQL语句修改root用户密码:
mysql 5.7以上的:
UPDATE mysql.user SET authentication_string=PASSWORD('admin') where USER='root';

mysql 5.7 以下的:有的mysql版本可能没有authentication_string字段,是password,改一下
UPDATE mysql.user SET PASSWORD=PASSWORD('admin') where USER='root';即可

修改完后记得刷新权限:

执行FLUSH PRIVILEGES;
退出mysql

Ⅳ. 停止$mysql_home/bin/mysqld --skip-grant-tables &进程(后台运行的进程),停止后台进程的方法详见:
https://blog.csdn.net/mounter625/article/details/6069194 或者 https://www.cnblogs.com/clsn/p/7744858.html
如果是修改配置文件启动mysql服务的,将配置文件还原(注释掉skip-grant-tables),然后重启即可。

Ⅴ. 通过刚修改的新密码连接数据库即可

方法三:和方法二相似通过SQL语句修改数据库的方式修改root密码的方法:
与方法二步骤大致相同,只是SQL语句不同。
进入超级管理模式,修改重启,重新连接即可。

由于SQL里保存密码都是加密的方式,所以,这种方法要使用加密后的密码修改,一般不建议使用,或者修改为空密码。

SQL语句:
将密码修改为空:
mysql 5.7以上版本:
UPDATE mysql.user SET authentication_string='' where USER='root';
mysql 5.7以下版本:
UPDATE mysql.user SET PASSWORD='' where USER='root';

将密码修改为123456:
mysql 5.7以上版本:
UPDATE mysql.user SET authentication_string='*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' where USER='root';
mysql 5.7以下版本:
UPDATE mysql.user SET PASSWORD='*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' where USER='root';

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
MySQL忘记root密码--不重启mysqd重置root密码
找回丢失mysql root密码 一、启动修改丢失的mysql单实例root密码方法; 1.首先停止mysql /etc/init.d/mysql stop 2.
4051 0
sql点滴44—mysql忘记root密码
1、?首先检查mysql服务是否启动,若已启动则先将其停止服务,可在开始菜单的运行,使用命令: net stop mysql? ? ? 打开第一个cmd1窗口,切换到mysql的bin目录,运行命令: mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server 5.
588 0
Mysql忘记初始密码时修改方式
Mysql忘记初始密码时修改方式
61 0
CentOS7重置root密码
CentOS7重置root密码
1278 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
18673 0
mysql忘记root密码搞定方法(windows)
1.以系统管理员身份登陆系统。   2.打开cmd-----net start 查看mysql是否启动。启动的话就停止net stop mysql.   3.我的mysql安装在d:\usr\local\mysql4\bin下。
766 0
ubuntu16.04:成功解决ubuntu16.04 忘记root密码
ubuntu16.04:成功解决ubuntu16.04 忘记root密码
84 0
3
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载
http://www.vxiaotou.com