Deepin15.9安装MySQL5.7.21后更新root密码

Deepin15.9系统中安装完MySQL(5.7.21)之后,利用root用户登录系统时出现以下错误:

~$ mysql -u root
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

不能利用root用户登录MySQL,可以通过相应的步骤更改root用户密码的方法实现root用户登录。

1 查看MySQL安装时默认用户名和密码

配置文件位置:/etc/mysql/debian.cnf

~$ sudo cat /etc/mysql/debian.cnf

# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host     = localhost
user     = debian-sys-maint
password = P2D9ihtXgb5aaWGS
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host     = localhost
user     = debian-sys-maint
password = P2D9ihtXgb5aaWGS
socket   = /var/run/mysqld/mysqld.sock

这其中[client]下user代表的是默认用户名,passwd代表的是默认生成的密码。

2 登录MySQL并更新root用户密码

2.1 登录MySQL

利用上一步中的用户名和密码进行登录MySQL

~$ mysql -u debian-sys-maint -pP2D9ihtXgb5aaWGS

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.21-1 (Debian)

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> 

注意:-p后面跟密码之间是没有空格的。

2.2 更新root用户密码

命令分两步:
步骤一:启用root用户

mysql> update mysql.user set plugin="mysql_native_password" where user="root";

Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

步骤二:更改root用户密码

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

Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1

3 重启MySQL服务

sudo service mysql restart

4 利用root用户登录MySQL

~$ 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.21-1 (Debian)

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> 

参考文献:
1 https://blog.csdn.net/baiguoxiong/article/details/82936890?utm_source=blogxgwz1

你可能感兴趣的:(Deepin15.9安装MySQL5.7.21后更新root密码)