我正在将我的linux docker环境从mac移植到我的pc笔记本电脑。我有两张docker图片,一张是 mysql:latest
数据库映像,另一个是 go:alpine
应用程序服务器映像。
在我的mac上,我使用bash脚本将环境变量传递给app server,以构成mysql的数据库连接字符串。
连接字符串为:
root:password@tcp(mysql_host:3306)/dbname
当我在mac上运行时,数据库连接成功,但在pc上没有。
在 Windows 10
,我已安装 Ubuntu
以及 Docker for Windows
. 在 bash
,我已经安装了docker客户端,通过设置 DOCKER_HOST
环境变量。
我已经创建了一个自定义docker网络,通过 --network
标记以便他们可以看到对方,并且我已经验证了他们确实能够解析他们的容器名称。
我的应用程序服务器正在使用的连接字符串完全相同,但返回以下错误:
this authentication plugin is not supported
我的go代码中返回此错误的行是:
db, err = sql.Open("mysql", dbConnStr)
我错过了什么?什么认证插件?
下面是 docker info
在我的电脑上:
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:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 773c489c9c1b21a6d78b5c538cd395416ec50f88
runc version: 4fc53a81fb7c994640722ac585fa9ca548971871
init version: 949e6fa
Security Options:
seccomp
Profile: default
Kernel Version: 4.9.87-linuxkit-aufs
Operating System: Docker for Windows
OSType: linux
Architecture: x86_64
CPUs: 6
Total Memory: 3.837GiB
Name: linuxkit-00155d016401
ID: JXLB:YHLO:J6XO:H66P:X7LQ:RF2I:Z3AC:FPLY:OCLQ:DSYU:H4CR:W2DD
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
File Descriptors: 19
Goroutines: 36
System Time: 2018-04-23T06:06:31.2274774Z
EventsListeners: 1
Registry: https://index.docker.io/v1/
Labels:
Experimental: true
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
1条答案
按热度按时间plicqrtu1#
docker hub上的mysql图片最近(2018/04/20)将“最新”标签从5.7更改为8,这有很多突破性的变化。使用“mysql:5.7“而不是”mysql“应该可以解决你的问题。