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博客