问题描述
在 Ubuntu 安装 MySQL 后,尝试使用 root 账户登录时出现了访问被拒绝的错误。
mysql -u root -p
Enter password:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
解决方案
为了解决这个问题,我们可以使用以下步骤来重新设置 root 账户的密码。
- 查找 debian-sys-maint 的密码
首先,我们需要查找 debian-sys-maint 用户的密码。可以通过以下命令来查找:
sudo cat /etc/mysql/debian.cnf
在输出中,找到 password
字段的值。记录下这个密码,我们将在后续步骤中使用它。
- 使用 debian-sys-maint 的密码登录 MySQL
可以使用 debian-sys-maint 用户的密码登录到 MySQL 中。使用以下命令:
mysql -u debian-sys-maint -p
在提示符下输入之前记录的密码,并按下 Enter 键。
- 切换到 mysql 数据库
成功登录到 MySQL 后,需要切换到 mysql
数据库。使用以下命令:
USE mysql;
- 修改 root 用户密码
修改 root 用户的密码。使用以下 SQL 语句:
UPDATE user SET authentication_string='' WHERE User='root';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';
请将 new_password
替换为您想要设置的新密码。
- 刷新权限
完成密码修改后,需要刷新权限以使更改生效。使用以下 SQL 语句:
FLUSH PRIVILEGES;
- 使用新密码登录
使用新设置的密码来登录 root 账户。使用以下命令:
扫描二维码关注公众号,回复:
17194752 查看本文章
mysql -u root -p
在提示符下输入刚刚设置的新密码,并按下 Enter 键。
如果一切顺利,应该成功登录到 MySQL。
参考资料
- https://blog.csdn.net/qq_26164609/article/details/106881079