MySQL server shell 登陆报错:ERROR 1045 (28000) 或 ERROR 1698 (28000)

背景

使用包管理器apt-get刚安装完MySQL。安装过程中没有进行密码初始化,使用的是默认设置。

博主系统Ubuntu16.04,MySQL5.7.33。亲测以下方法可用:

查看默认密码

cat /etc/mysql/debian.cnf
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host     = localhost
user     = debian-sys-maint # 1. 这个账户名
password = HwPMmIAFg1GNU0OH # 2. 这个密码
socket   = /var/run/mysqld/mysqld.sock 
[mysql_upgrade]
host     = localhost
user     = debian-sys-maint
password = HwPMmIAFg1GNU0OH
socket   = /var/run/mysqld/mysqld.sock

修改root密码

首先,使用刚才的用户名密码登陆:

mysql -udebian-sys-maint -p

然后,修改密码

UPDATE mysql.user SET authentication_string=PASSWORD('root'), PLUGIN='mysql_native_password' WHERE USER='root';

注:这一行命令效果是,将root密码修改为root。

最后重启mysql,即可用新账户登陆。

参考

https://cloud.tencent.com/developer/article/1142525(在它的基础上我补充了代码效果解释)
https://www.cnblogs.com/zhuxiaoxi/p/10843659.html

你可能感兴趣的:(Linux,mysql,ubuntu)