mysql - 无法使用密码登录 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”的访问被拒绝
解决方案
使用登录 mysql
sudo 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 脚本中建立连接。