mysql 5.7 密码到期_MySQL 5.7.18忘记密码和密码过期解决

一、忘记密码解决

[root@linux-node2 ~]# /etc/init.d/mysqld stop

[root@linux-node2 ~]# mysqld_safe --skip-grant-tables &

[root@linux-node2 ~]# mysql -p

mysql> update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';

#特别提醒注意的一点是,新版的mysql数据库下的user表中已经没有Password字段了

#而是将加密后的用户密码存储于authentication_string字段

mysql> flush privileges;

mysql> quit;

[root@linux-node2 ~]# /etc/init.d/mysqld restart

#然后mysql就可以连接了,但此时操作似乎功能不完全,还要alter user…

mysql> show databases;

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

mysql> alter user 'root'@'localhost' identified by '123456';

Query OK, 0 rows affected (0.01 sec)

mysql> quit;

Bye

[root@linux-node3 mysql]# /etc/init.d/mysqld restart

Shutting down MySQL.. SUCCESS!

Starting MySQL. SUCCESS!

[root@linux-node3 mysql]# mysql -uroot -p123456

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 3

Server version: 5.7.18-log MySQL Community Server (GPL)

Copyright (c) 2000, 2017, 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;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| sys |

+--------------------+

二、密码过期问题解决

1、问题现象

[root@linux-node2 mysql]# mysql -uroot -p

Enter password:

ERROR 1862 (HY000): Your password has expired. To log in you must change it using a client that supports expired passwords.

2、修改配置文件/etc/my.cnf

[root@linux-node2 mysql]# vim /etc/my.cnf

#在[mysqld]下增加skip-grant-tables,跳过授权表登录

[client]

port = 3306

socket = /data/mysql/mysql.sock

[mysql]

no-auto-rehash

[mysqld]

user = mysql

port = 3306

socket = /data/mysql/mysql.sock

datadir = /data/mysql/data

log-bin = /data/mysql/mysql-bin

server-id = 6

skip-grant-tables

[root@linux-node2 mysql]# /etc/init.d/mysqld restart

Shutting down MySQL.. SUCCESS!

Starting MySQL. SUCCESS!

3、登录mysql

[root@linux-node2 mysql]# mysql

Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MySQL connection id is 4

Server version: 5.7.18-log MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> use mysql;

Database changed

MySQL [mysql]> update user set password_expired='N' where user='root';

Query OK, 1 row affected (0.01 sec)

Rows matched: 1 Changed: 1 Warnings: 0

MySQL [mysql]> flush privileges;

Query OK, 0 rows affected (0.01 sec)

MySQL [mysql]> quit;

Bye

4、去掉跳过授权表登录,并重启登录

[root@linux-node2 mysql]# vim /etc/my.cnf

[root@linux-node2 mysql]# /etc/init.d/mysqld restart

Shutting down MySQL.. SUCCESS!

Starting MySQL. SUCCESS!

[root@linux-node2 mysql]# mysql -uroot -p123456

Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MySQL connection id is 3

Server version: 5.7.18-log MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> quit;

Bye

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值