通过 SSH 隧道进行 MySQL 无密码访问 - 拒绝用户“root”@“localhost”访问

通过 SSH 隧道进行 MySQL 无密码访问 - 拒绝用户“root”@“localhost”访问

我安装了一个新的 MySQL 8 服务器。全新、干净,直接从包装中取出。现在我想使用 DBeaver(一种 GUI 工具)连接到它。它具有 SSH 隧道的安全功能。隧道有效。我使用私钥通过 SSH 连接。

然后我尝试以 root 身份使用 DBeaver(通过隧道)连接到本地主机,结果出现了“拒绝用户‘root’@‘localhost’访问”的错误消息。

这是为什么?当我以 root 身份使用 putty 通过 SSH 连接到服务器,然后输入 mysql 时,一切正常。我拥有完全访问权限。

顺便说一句,我尝试在 DBeaver 配置中使用“127.0.0.1”而不是“localhost”,但没有帮助。

这是我的 mysql.user 表:

mysql> select host, user from user;
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| localhost | debian-sys-maint |
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+

在此处输入图片描述

知道如何配置访问权限吗?或者也许我必须设置密码?但是为什么它在终端中有效?

答案1

您无法root从服务器外部使用。这是 MySQL 故意为之,因为人们会(太频繁地)建立一个带有 MySQL 后端和漏洞百出的前端的网站,使用简单的密码,然后通过多种方式获得 pWn3d……

一种快速的方法是创建另一个帐户来处理所有管理工作,然后使用授权选项授予所有权限。该过程如下:

CREATE USER 'harry'@'%' IDENTIFIED WITH mysql_native_password BY 'superSecretPassword!123';
GRANT ALL ON *.* TO 'harry'@'%' WITH GRANT OPTION;

问题解决了

相关内容