前言:由于好几次安装MySQL5.7后一直被重置密码所困扰,因此特意整理重置的方法

安装MySQL5.7

[root@node1 db]# ll  以下的rpm安装包可以随处下载
total 402356
-rw-r--r-- 1 root root 24744 Nov 25 2015 libaio-0.3.109-13.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 25106088 Mar 5 10:24 mysql-community-client-5.7.22-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 3781636 Mar 5 10:24 mysql-community-devel-5.7.22-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 2239868 Mar 5 10:24 mysql-community-libs-5.7.22-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 172992596 Mar 5 10:25 mysql-community-server-5.7.22-1.el7.x86_64.rpm
[root@node1 db]#
[root@node1 db]# rpm -ivh *.rpm --nodeps --force
warning: mysql-community-client-5.7.22-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:mysql-community-libs-5.7.22-1.el7################################# [ 20%]
2:mysql-community-client-5.7.22-1.e################################# [ 40%]
3:libaio-0.3.109-13.el7 ################################# [ 60%]
4:mysql-community-server-5.7.22-1.e################################# [ 80%]
5:mysql-community-devel-5.7.22-1.el################################# [100%] 启动mysql
[root@node1 db]# systemctl start mysqld 从日志中获取随机生成的密码
[root@node1 db]# grep password /var/log/mysqld.log
2018-07-15T09:01:09.735836Z 1 [Note] A temporary password is generated for root@localhost: ViFg8pWf+,lU
[root@node1 db]# mysql -uroot -pViFg8pWf+,lU
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.22
Copyright (c) 2000, 2018, 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> show databases;
ERROR 1820 (HY000): Unknown error 1820
mysql> select * from mysql;
ERROR 1046 (3D000):

方法1:使用alter修改

mysql> ALTER USER USER() IDENTIFIED BY 'Reid790!@#$';
Query OK, 0 rows affected (0.00 sec) mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Tom579#$%^&'; #针对localhost
Query OK, 0 rows affected (0.00 sec) 或者先关闭其密码策略修改
mysql> select @@validate_password_length;
ERROR 1820 (HY000): Unknown error 1820
mysql> ALTER USER USER() IDENTIFIED BY '12345678';
Query OK, 0 rows affected (0.00 sec) validate_password_policy有以下取值:
Policy Tests Performed
0 or LOW Length
1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file
默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。

方法2:使用set password

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('Gerk087@&#@');  #第一次也要符合密友复杂度
Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

方法3:使用update

mysql> UPDATE mysql.user SET authentication_string = PASSWORD('Marry583@&%!'), password_expired = 'N' WHERE User = 'root' AND Host = 'localhost';
Query OK, 1 row affected, 1 warning (0.00 sec) mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

方法4:使用mysql_secure_installation

[root@node1 db]# mysql_secure_installation 

Securing the MySQL server deployment.

Enter password for user root: Marry583@&%!
The 'validate_password' plugin is installed on the server.
The subsequent steps will run with the existing configuration
of the plugin.
Using existing password for root. Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : y New password: Tom579#$%^& Re-enter new password: Tom579#$%^& Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
为了安全应该yes
Remove anonymous users? (Press y|Y for Yes, any other key for No) : No ... skipping. Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
为了安全应该yes
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : No ... skipping.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment. 为了安全应该yes
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : No ... skipping.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately. Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success. All done!

方法5:跳过授权列表skip-grant-tables

[root@node1 db]# mysql
ERROR 1045 (28000): Unknown error 1045
[root@node1 db]# vim /etc/my.cnf #使用完后去掉
[mysqld]
skip-grant-tables=1 重启mysql,再修改
[root@node1 db]# systemctl restart mysqld
[root@node1 db]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.22 MySQL Community Server (GPL) Copyright (c) 2000, 2018, 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('Reid4909@%&');
ERROR 1290 (HY000): Unknown error 1290
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Tom579#$%^&';
ERROR 1290 (HY000): Unknown error 1290
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec) mysql> set password = PASSWORD('Reid4909@%&');
ERROR 1133 (42000):
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Tom579#$%^&';
Query OK, 0 rows affected (0.01 sec) mysql> set password for root@localhost = password('123456');
Query OK, 0 rows affected, 1 warning (0.00 sec)

Summary
a. mysql5.7安装好后会在/var/log/mysql.log中产随机密码,而且不修改密码不能执行任何操作
b. mysql5.7的user表中的password字串修改为authentication_string
c. 修改密码的Policy转变是1(中级),因此设置时要符合规则
d. 跳过授权列时,同时也不受密码policy影响

MySQL5.7初始化后5种密码重置方法的更多相关文章

  1. centos系统mysql数据库忘记密码重置方法(ERROR 1045 28000 Access denied...)

    当mysql的密码错误的时候,就会报如下这样的错误信息 解决方法如下: 首先输入mysqld_safe --skip-grant-tables 然后停止mysql服务,输入service mysqld ...

  2. MySQL密码重置方法

    MySQL数据库的安装和配置,配置Mysql按照bin目录到Path中 使用命令行窗口连接MYSQL数据库:mysql –u用户名 –p密码 对于密码的重置有以下两种方法(卸载重新安装当然也可以): ...

  3. mysql 8.0.15忘记密码重置方法

    1.打开命令窗口cmd,输入命令:net stop mysql,停止MySQL服务, 2.开启跳过密码验证登录的MySQL服务 输入命令 mysqld --console --skip-grant-t ...

  4. Linux用户密码重置方法

    方法一: 启动时,随便按一个键,空格即可(不能是回车),让其停留在如下界面 按e编辑 在UTF-8后面添加init=/bin/sh init=/bin/sh 根据上面提示,按Ctrl+x启动得下图 输 ...

  5. Windows Server 2012 (2008) 忘记密码重置方法 Windows 10 忘记密码

    要使用windows server 2012安装DVD,选择光盘引导进入 进入修复系统---命令提示符---切换目录至系统目录--执行move命令    先备份  utilman.exe(他就是这个程 ...

  6. MAC MYSQ忘记密码重置方法

    网友的方法,记个笔记请勿转载. step1: 关闭mysql服务:  苹果->系统偏好设置->最下边点mysql 在弹出页面中 关闭mysql服务(点击stop mysql server) ...

  7. ubuntu下MySQL忘记密码重置方法

    方法一: 1):编辑mysqld.cnf文件 sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf 2):在文件中的skip-external-locking一行的下面 ...

  8. pymysql_mysql密码重置方法,连接局域网数据库的解决办法

    https://blog.csdn.net/qq_37176126/article/details/72824106   pymysql模块的操作 https://blog.csdn.net/skh2 ...

  9. wamp5 忘记mysql root密码 重置方法

    wamp5比较恶心,忘记mysql root密码了,重新安装都没用,网上找了个文章可以修改root的密码. http://www.kuqin.com/database/20080306/4249.ht ...

随机推荐

  1. SSM框架的详细解说

    文章转载自:http://blog.csdn.net/zhshulin 使用SSM(Spring.SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就 ...

  2. 自己动手实现MQTT协议

    写在前面 前段时间弄IoT相关的东西,系统学习了一下 MQTT 协议,在此分享出来. 本文先是对 MQTT 协议做了简单的介绍:接着是对 MQTT协议的内容做了较为全面的解读:最后使用 Python ...

  3. Tomcat源码分析 (六)----- Tomcat 启动过程(一)

    说到Tomcat的启动,我们都知道,我们每次需要运行tomcat/bin/startup.sh这个脚本,而这个脚本的内容到底是什么呢?我们来看看. 启动脚本 startup.sh 脚本 #!/bin/ ...

  4. java后端开发面经 数据库相关

    小姐姐:怎么理解感情中的付出和回报? 你答:有这样一个故事,讲的是一个小男孩和一个小女孩,这个小男孩呢,用很多好玩石头,而这个小女孩呢,有好多好吃的糖果,有一天,他们相互约定:小男孩用所有的石头交互小 ...

  5. idea 2019安装完(打不开&&启动不了)问题解决(最全解决方法)

    今天从网盘把idea下载下来后一路安装,准备 设置的时候不管怎么打开 他都无动于衷没办法,卸了安,安了卸,反复折腾了 好几遍 它都无动于衷.于是开始在百度上找答案看了 好几个 方法一遍一遍试还是不行, ...

  6. Selenium+java - PageFactory设计模式

    前言 上一小节我们已经学习了Page Object设计模式,优势很明显,能更好的体现java的面向对象思想和封装特性.但同时也存在一些不足之处,那就是随着这种模式使用,随着元素定位获取,元素定位与页面 ...

  7. Python-demo(listen)

    import requests import json # 爬虫原理 模拟浏览器 获取请求数据 #点击播放连接 #url = "https://www.ximalaya.com/revisi ...

  8. Javaweb之国际化

    Javaweb之国际化 一.前言 软件的本地化:一个软件在某个国家或地区使用时,采用该国家或地区的语言,数字,货币,日期等习惯. 软件的国际化:软件开发时,让它能支持多个国家和地区的本地化应用.使得应 ...

  9. JavaScript String 字符串方法

    JavaScript String 字符串方法汇总   1.str.indexOf() 方法查找字符串中的字符串  返回   字符串中指定文本首次出现的索引(位置)       JavaScript ...

  10. JUC包实现的同步机制,原理以及简单用法总结

    除了用Synchronized关键字修饰同步块,让线程获取某对象的锁实现多线程操作共享变量的同步外,还可以使用java.util.concurrent包.并且,juc包机制下的同步更灵活.juc包的所 ...