ubuntu21.10安装mysql8及无密码登录报错解决

Ubuntu 21.10 + MySQL 8.0 实践正常 2022.03

linux中使用命令安装mysql8,安装过程不会提示设置密码,这就导致,mysql默认的root用户无法使用密码登录。

sudo apt install mysql-server   # ubuntu21.10安装mysql8,没有设置密码的提示
mysql -u root -p                # 无密码登录mysql,报错Enter password: ERROR 1698 (28000): Access denied for user 'root'@'localhost'

### 以下为解决方案

cd /etc/mysql/mysql.conf.d/     # 进入此mysql.conf.d文件夹
sudo vim mysqld.cnf             # 修改此文件:[mysqld]这一块中加入skip-grant-tables,保存退出
service mysql restart           # 重启mysql
mysql -u root -p           # 无密码登录mysql,现在已经可以登录成功了

# mysql下复制这一行执行,不用修改
update mysql.user set plugin='mysql_native_password' WHERE user='root' AND host='localhost';
exit

# 命令行下
sudo vim mysqld.cnf            # [mysqld]这一块中原来加入的skip-grant-tables删除或注释
service mysql restart          # 重启mysql
mysql -u root -p          # 无密码登录mysql

# 输入以下代码将原有authentication_string字段置空,原样复制即可不用修改
use mysql;
update user set authentication_string='' where user='root';

# 现在可以修改密码了,例:修改root密码为n
ALTER user 'root'@'localhost' IDENTIFIED BY 'n';
exit

ok结束,经过上述步骤,你的root用户应该可以用密码登录了!

注意:在mysql 5.7.9以后废弃了password字段和password()函数;authentication_string:字段表示用户密码。

原文链接:Ubuntu安装mysql8后无法使用root用户登录,且试图修改root用户密码报错_推荐瞎学的博客-CSDN博客


版权声明:本文为Immacy原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。