MySQL忘记root密码解决方法

原创 2018年04月17日 21:56:38

现在我们使用的mysql数据库分为两个版本了,一个是mysql ,一个是mariadb,两个版本的解决方案有些不同,我会在下面给与说明。

第一步

首先,我们需要打开my.cnf

vim /etc/my.cnf

[mysqld]下添加skip-grant-tables,然后保存并退出

假如没有my.cnf这个文件的话,我们可以在 /etc/mysql/mysql.conf.d/mysqld.cnf[mysqld]下添加skip-grant-tables,然后保存并退出

重启mysql服务器

systemctl restart mysql(mariadb)
或者
service mysql(mariadb) restart

第二步

此时,我们登录进入mysql的时候是不需要输入密码的,但是我们可以修改root密码,我们登录进去后,进入mysql库

[root@ub1 ~]$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.21-0ubuntu0.16.04.1 (Ubuntu)
... ...
mysql> use 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('your_new_passwd')WHERE User='root' ;

但是在mysql上没有password这个字段,但是有一个叫做authentication_string :

mysql> SELECT User,Host,Password FROM user;
ERROR 1054 (42S22): Unknown column 'Password' in 'field list'
mysql> SELECT User,Host,authentication_string FROM mysql.user;
+------------------+-----------+-------------------------------------------+
| User             | Host      | authentication_string                     |
+------------------+-----------+-------------------------------------------+
| root             | localhost | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| mysql.session    | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys        | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| debian-sys-maint | localhost | *91A4592A144CD258480130DC9002C5D61E82238D |
+------------------+-----------+-------------------------------------------+
4 rows in set (0.01 sec)

所以我们在修改密码的时候将password字段改成authentication_string

mysql> UPDATE user SET authentication_string=PASSWORD('root')WHERE User='root';
Query OK, 0 rows affected, 1 warning (0.31 sec)
Rows matched: 1  Changed: 0  Warnings: 1

刷新:

mysql> flush privileges;

第三步

/etc/my.cnf中的skip-grant-tables注释掉(/etc/mysql/mysql.conf.d/mysqld.cnf)

重启:

systemctl restart mysql(mariadb)
或者
service mysql(mariadb) restart
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Woodrow1994/article/details/79981571

mysql互联网开发

-
  • 1970年01月01日 08:00

Mysql 5.7登陆密码问题

安装rpm格式的mysql 5.7中遇到的密码问题情况做一下总结(ps:本文安装都是使用root用户进行)...
  • u012136232
  • u012136232
  • 2017-09-03 23:05:12
  • 87

mysql 5.7 密码变更变化(1)

1.    安装时初始化密码 Mysql 5.7 以后缺省安装完成后初始化密码和以前的老版本还是有一定区别,安装方式不同,缺省的密码文件也在不同的地方 Centos/Redhat – RPMPac...
  • royjj
  • royjj
  • 2016-05-25 17:45:09
  • 1444

使用MySQL密码插件杜绝账户弱口令

从MySQL 5.6.6版本起,提供了密码插件(validate_password )用于检查密码强度提高安全性。在数据库中安装并启用密码插件后,在create user、alter user(5.7...
  • hrbhanyu
  • hrbhanyu
  • 2017-03-02 15:04:12
  • 496

Mysql多实例+主从复制

一、安装并启动: # yum install mariadb-server mysql mysql-server mysql-libs -y # systemctl start mariad...
  • u010310167
  • u010310167
  • 2017-08-31 15:31:13
  • 82

5. 创建用户、授权以及修改密码等权限操作

今天突然有了修改密码的需求,然后试着在网上搜了下方法,好像都不能成功,后来看了下官方文档才发现,是因为我用的mysql版本太高了,已经改变了修改密码的方法。 查看mysql版本 如果还没连...
  • lovefengruoqing
  • lovefengruoqing
  • 2018-01-30 23:09:42
  • 83

mysql无备份情况下的truncat table的恢复

一、环境:CentOS release 6.5 (Final)Server version: 5.7.17-11-log Percona Server (GPL), Release 11, Revis...
  • chinahuanghuajun
  • chinahuanghuajun
  • 2018-03-13 14:18:41
  • 40

Docker 搭建 MySQL 详解

1> 获取镜像 : 直接从 Docker Hub 上拉取 MySQL在 Docker Hub 或者 Docker Store 上搜索 MySQL 官方版使用相应的 pull 指令拉取 M...
  • chenshun123
  • chenshun123
  • 2018-03-24 12:45:28
  • 53

MySQL 5.7.19 编译安装与配置

进入MySQL官网下载页面,地址https://www.mysql.com/downloads/,如果你想使用MySQL 5.7.19的源码版本,点此处直接下载! 进入MySQL Community...
  • uisoul
  • uisoul
  • 2018-01-10 10:09:15
  • 250

windows 下重置 mysql 的 root 密码

今天发现 WordPress 连接不上数据库,登录 window server 服务器查看,所有服务均运行正常。使用 root 账号登录 mysql 数据库,结果提示密码不匹配。我突然意识到,服务器可...
  • zzy7075
  • zzy7075
  • 2017-10-17 15:18:09
  • 200
收藏助手
不良信息举报
您举报文章:MySQL忘记root密码解决方法
举报原因:
原因补充:

(最多只允许输入30个字)