首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >只有当"allowPublicKeyRetrieval=true“在DBeaver驱动程序设置中运行时,才能连接到在码头容器中运行的mysql

只有当"allowPublicKeyRetrieval=true“在DBeaver驱动程序设置中运行时,才能连接到在码头容器中运行的mysql
EN

Stack Overflow用户
提问于 2021-12-16 04:41:28
回答 2查看 1.1K关注 0票数 1

我正在使用一个docker容器来运行mysql服务器,以便从我的主机本地开发一个golang应用程序,问题是,我尝试使用各种客户端连接到它,它总是成功地连接,但是在运行查询时返回错误,例如在sqltools for vscode中:

代码语言:javascript
运行
复制
Request connection/GetChildrenForTreeItemRequest failed with message: 
ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; 
consider upgrading MySQL client

当我试着和戈朗联系时,我得到了:

代码语言:javascript
运行
复制
go run ./cmd/web
ERROR   2021/12/16 04:28:55 main.go:32: Error 1045: Access denied for user 'web'@'172.18.0.1' (using password: YES)
exit status 1

(Golang数据源是使用mysql驱动程序的"user:pass@/database?parseTime=true“)

然而,DBeaver能够成功地连接,但是如果我试图在不更改任何设置的情况下进行连接,则会得到以下消息:

代码语言:javascript
运行
复制
Connection error:
Public Key Retrieval is not allowed

因此,使用驱动程序设置并将"allowPublicKeyRetrieval“从"false”更改为"true“将使一切正常工作。

有什么方法可以让这个“公钥检索”使用高丽驱动吗?我是否可以从mysql控制台中更改一些内容,这样就不需要了?我无法在文档( https://github.com/go-sql-driver/mysql )中看到任何东西,在找到一种成功连接它的方法之前,我无法继续我的项目:(

EN

回答 2

Stack Overflow用户

发布于 2021-12-16 07:11:18

首先检查一下,作为在这里,是否向JDBC查询添加?allowPublicKeyRetrieval=true就足够了。

检查您如何启动您的Mysql码头图像,确保您公开您的端口。

广告尝试使用Mysql在如图所示开始时生成的根帐户/密码。

一旦生效,您就可以检查web用户了。

票数 1
EN

Stack Overflow用户

发布于 2022-01-19 20:16:26

我想你可能已经弄清楚了,但万一你不知道,这是我的答案。

你好像在听“我们走”那本书(我在读)。书中的说明是用CREATE USER 'web'@'localhost';创建一个用户。如果您看一下错误Error 1045: Access denied for user 'web'@'172.18.0.1'...,它就会告诉您,这是在尝试在172.18.0.1而不是localhost进行连接。

解决这一问题的最简单方法是使用CREATE USER 'web'@'%';创建用户,其中%意味着允许来自任何地方的连接。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70373900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档