各位用户为了找寻关于详解mysql5.7密码忘记解决方法的资料费劲了很多周折。这里教程网为您整理了关于详解mysql5.7密码忘记解决方法的相关资料,仅供查阅,以下为您介绍关于详解mysql5.7密码忘记解决方法的详细内容
ENV:
? 1 2 3 4 5 6 7 8 9 10 11 12[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
登陆时出错:
? 1 2 3[root@centos7 ~]# mysql -u root -p
Enter
password
:
ERROR 1045 (28000): Access denied
for
user
'root'
@
'localhost'
(using
password
:
NO
)
密码忘记了(和刚安装后不知道密码一样)
网上有人说mysql的密码是空密码,其实在mysql5.7版本之后,密码不再是空密码了,
如果是刚安装的,可以在mysql的日志文件找到
? 1grep
'temporary password'
/var/log/mysqld.log
补充:如果找到mysql提供的密码,可以使用
mysqladmin -u root -p 'mysql提供的密码' password ‘自己的新密码'
直接修改mysql的密码,但这种方法存在安全隐患,毕竟密码在命令行上显示了,不建议但不反对。
如果是忘记,修改如下:
1.修改 /etc/my.cnf,加入 skip-grant-tables;
? 1[root@centos7 ~]# vim /etc/my.cnf
空白位置加入,并保存退出;
? 1 2 3 4[mysqld]
skip-
name
-resolve
skip-
grant
-tables
?
1
[root@centos7 ~]# systemctl restart mysqld
2.空密码直接进入mysql;
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15[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库;
? 1 2 3 4 5 6mysql> 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';
? 1 2 3 4 5 6 7 8 9mysql>
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
? 1[root@centos7 ~]# vim /etc/my.cnf
?
1
2
3
4
[mysqld]
skip-
name
-resolve
#skip-
grant
-tables
?
1
[root@centos7 ~]# systemctl restart mysqld
5.用新的密码再进入mysql;
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15[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 '密码';
修改用户密码;
? 1ALTER
USER
testuser IDENTIFIED
BY
'123456'
;
修改当前登录用户
? 1ALTER
USER
USER
() IDENTIFIED
BY
'123456'
;
?
1
2
3
4
5
6
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了
? 1 2 3 4 5 6 7 8 9 10 11 12 13mysql> show databases;
+
--------------------+
|
Database
|
+
--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+
--------------------+
4
rows
in
set
(0.00 sec)
mysql> exit
Bye
以上所述是小编给大家介绍的mysql5.7密码忘记解决方法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
原文链接:https://blog.csdn.net/silent_ghost/article/details/89819511