详解mysql5.7密码忘记解决方法

 更新时间:2019年05月13日 16:56:48   作者:Matrix-bystander  
这篇文章主要介绍了mysql5.7密码忘记解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

ENV:

[root@centos7 ~]# uname -r
3.10.0-514.el7.x86_64
[root@centos7 ~]# cat /etc/redhat-release 
CentOS Linux release 7.3.1611 (Core) 
[root@centos7 ~]# rpm -qa mysql
[root@centos7 ~]# rpm -qa |grep mysql
mysql-community-common-5.7.26-1.el7.x86_64
mysql-community-client-5.7.26-1.el7.x86_64
mysql57-community-release-el7-11.noarch
mysql-community-server-5.7.26-1.el7.x86_64
mysql-community-libs-5.7.26-1.el7.x86_64
mysql-community-libs-compat-5.7.26-1.el7.x86_64

登陆时出错:

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

密码忘记了(和刚安装后不知道密码一样)

网上有人说mysql的密码是空密码,其实在mysql5.7版本之后,密码不再是空密码了,

如果是刚安装的,可以在mysql的日志文件找到

grep 'temporary password' /var/log/mysqld.log

补充:如果找到mysql提供的密码,可以使用

mysqladmin -u root -p 'mysql提供的密码' password ‘自己的新密码' 

直接修改mysql的密码,但这种方法存在安全隐患,毕竟密码在命令行上显示了,不建议但不反对。

如果是忘记,修改如下:

1.修改 /etc/my.cnf,加入 skip-grant-tables;

[root@centos7 ~]# vim /etc/my.cnf

空白位置加入,并保存退出;

[mysqld]
     
skip-name-resolve
skip-grant-tables
[root@centos7 ~]# systemctl restart mysqld

2.空密码直接进入mysql;

[root@centos7 ~]# mysql -u root -p
Enter password: (这里是空密码,直接回车)
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.26 MySQL Community Server (GPL)
 
Copyright (c) 2000, 2019, 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>

进入mysql库;

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>

这里的mysql并不是没变,数据库位置是变化的;

3.修改密码:UPDATE user SET authentication_string=PASSWORD('newpassword') where USER='root';

mysql> UPDATE user SET authentication_string=PASSWORD('newpassword') where USER='root';
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 1
 
mysql> 
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
 
mysql>

4改回/etc/my.cnf

注释掉 #skip-grant-tables

[root@centos7 ~]# vim /etc/my.cnf
[mysqld]
     
skip-name-resolve
#skip-grant-tables
[root@centos7 ~]# systemctl restart mysqld

5.用新的密码再进入mysql;

[root@centos7 ~]# mysql -u root -p 
Enter password: (之前演示为newpassword)
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.26
 
Copyright (c) 2000, 2019, 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>

6.更改root密码,更改root密码: alter user 'root'@'localhost' identified by '密码';

修改用户密码;

ALTER USER testuser IDENTIFIED BY '123456';

修改当前登录用户

ALTER USER USER() IDENTIFIED BY '123456';
mysql> alter user user() identified by 'Linuxpassword!@#';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> alter user user() identified by 'LINUX123password!@#';
Query OK, 0 rows affected (0.00 sec)
 
mysql> 

可以看出,密码的复杂度有了很大的要求;

7.修改完成后就可以继续操作mysql了

mysql> show databases;
+--------------------+
| Database      |
+--------------------+
| information_schema |
| mysql       |
| performance_schema |
| sys        |
+--------------------+
4 rows in set (0.00 sec)
 
mysql> exit
Bye

以上所述是小编给大家介绍的mysql5.7密码忘记解决方法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • mysql存储过程基础之遍历多表记录后插入第三方表中详解

    mysql存储过程基础之遍历多表记录后插入第三方表中详解

    这篇文章主要给大家介绍了关于mysql存储过程教程之遍历多表记录后插入第三方表中的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧
    2018-07-07
  • Mysql数据库命令大全

    Mysql数据库命令大全

    mysql命令大家经常会用到,但是很少有朋友整理吧,最近项目不多,抽个时间把mysql数据库命令总结给大家,需要的朋友可以参考下
    2015-09-09
  • 简单整理MySQL的日志操作命令

    简单整理MySQL的日志操作命令

    这篇文章主要介绍了MySQL的日志操作命令,其中重点讲述了MySQL的日志删除方法,需要的朋友可以参考下
    2015-12-12
  • 3种高效的Tags标签系统数据库设计方案分享

    3种高效的Tags标签系统数据库设计方案分享

    这篇文章主要介绍了3种高效的Tags标签系统数据库设计方案分享,现在主流的博客、CMS系统都有一个标签系统,本文就探讨它的数据库设计方式,需要的朋友可以参考下
    2014-07-07
  • MySQL5.5.27安装图文教程

    MySQL5.5.27安装图文教程

    本文通过图文并茂的形式给大家介绍了mysql 5.5.27的安装教程,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-09-09
  • MySQL 用 limit 为什么会影响性能

    MySQL 用 limit 为什么会影响性能

    对于小的偏移量,直接使用limit来查询没有什么问题,但随着数据量的增大,越往后分页,limit语句的偏移量就会越大,速度也会明显变慢,接下来文章就向大家介绍其的原由,感兴趣的小伙伴可参考下面文章具体内容
    2021-09-09
  • 关于mysql查询字符集不匹配问题的解决方法

    关于mysql查询字符集不匹配问题的解决方法

    这篇文章主要给大家介绍了关于mysql查询字符集不匹配问题的解决方法,文中通过示例代码给大家介绍的非常详细,对同样遇到这个问题的朋友们具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
    2017-08-08
  • mysql错误代码error2003的问题及解决

    mysql错误代码error2003的问题及解决

    这篇文章主要介绍了mysql错误代码error2003的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Mysql 数据库双机热备的配置方法

    Mysql 数据库双机热备的配置方法

    mysql数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题。还好mysql数据库提供了一种主从备份的机制,其实就是把主数据库的所有的数据同时写到备份数据库中。
    2010-06-06
  • MySQL实现字段的自定义排序的方法

    MySQL实现字段的自定义排序的方法

    一般情况下,我们排序都是直接利用 order by 字段 asc/desc;但是如果要排序的字段数据格式并不能直接实现,或者说我们需要指定的顺序且没有什么规律,简单的order by字段就实现不了,所以本文给大家介绍了MySQL实现字段的自定义排序的方法,需要的朋友可以参考下
    2024-04-04

最新评论