首页 > 解决方案 > 无法使用密码登录 mysql - Ubuntu

问题描述

我在 Ubuntu 20.04 中安装了 mysql。

问题 -

案例 1:我有默认的 root 用户。我可以使用登录,sudo mysql但无法使用登录mysql -u root -p

案例 2:我创建了另一个用户“本地”。我可以使用mysql -u local -p并通过提供我设置的密码登录。但问题是如果我输入错误的密码,它仍然会让我登录。我不知道为什么。

我遵循了这个ERROR 1698 (28000): Access denied for user 'root'@'localhost' 但这对我没有帮助。我也关注了其他主题,例如为 mysql 创建新用户等。我也无法从工作台或 python 脚本访问。

错误:错误 1698 (28000):用户“root”@“localhost”的访问被拒绝

标签: mysqlubuntu

解决方案


使用登录 mysqlsudo mysql -u root

输入你的su密码,它会在没有 mysql 密码的情况下登录。

运行以下命令:

USE mysql;
UPDATE user SET plugin='mysql_native_password' WHERE User='root';
FLUSH PRIVILEGES;
exit;

重新开始:

sudo systemctl restart mysql.service

之后,运行命令来保护 MySQL 服务器并创建一个新的 root 密码。

sudo mysql_secure_installation

出现提示时,回答以下问题:

  • 新密码:输入密码
  • 重新输入新的密码:
  • 重复输入密码
  • 移除匿名用户?[是/否]:是
  • 远程禁止root登录?[是/否]:是
  • 删除测试数据库并访问它?[是/否]:是
  • 现在重新加载权限表?[是/否]:是

下次在终端输入以下命令登录:

sudo mysql -u root -p

然后输入你最近设置的mysql密码登录。祝你好运,在这件事上连续浪费了几个小时并遵循了数十个教程之后,这才奏效。通过这样做,我终于能够在工作台和我的 python 脚本中建立连接。


推荐阅读