相关疑难解决方法(0)

go-mysql:从go应用程序容器连接到mysql容器时,不支持身份验证插件

我正在将我的Linux docker环境从Mac移植到PC笔记本电脑。我有2个docker映像,一个是mysql:latest数据库映像,另一个是go:alpine应用程序服务器映像。

在我的Mac上,我使用bash脚本将环境变量传递到应用服务器,以构成与mysql的数据库连接字符串。

连接字符串为:

root:password@tcp(mysql_host:3306)/dbname
Run Code Online (Sandbox Code Playgroud)

在Mac上但未在PC上运行数据库连接时,数据库连接成功。

Windows 10,我已经安装UbuntuDocker for Windows。在中bash,我已经安装了Docker客户端,并且能够通过设置DOCKER_HOST环境变量来使用docker cli连接到我的Windows Docker主机。

我创建了一个自定义docker网络,我通过该--network标志将其传递给我的2个容器,以便他们可以互相看到,并且我已验证它们确实能够解析其容器名称。

我的应用服务器使用的连接字符串完全相同,但是返回以下错误:

this authentication plugin is not supported
Run Code Online (Sandbox Code Playgroud)

我的执行代码中返回此错误的行是:

db, err = sql.Open("mysql", dbConnStr)
Run Code Online (Sandbox Code Playgroud)

我想念什么?什么认证插件?

这是docker info我的PC上的输出:

Containers: 1
 Running: 0
 Paused: 0
 Stopped: 1
Images: 27
Server Version: 18.04.0-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins: …
Run Code Online (Sandbox Code Playgroud)

mysql windows ubuntu go docker

2
推荐指数
1
解决办法
3318
查看次数

标签 统计

docker ×1

go ×1

mysql ×1

ubuntu ×1

windows ×1