windows - go-mysql: godkendelses plugin understøttes ikke under tilslutning fra go app container til mysql container

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg overfører mit Linux docker miljø fra min Mac til min pc bærbar computer. Jeg har 2 dockerbilleder, den ene er et mysql:latest databasebillede, det andet er et go:alpine applikationsserverbillede.


På min Mac bruger jeg bash scripts til at passere i miljøvariabler til app serveren for at komponere databaseforbindelsesstrengen til mysql.


Forbindelsesstrengen er:


root:password@tcp(mysql\_host:3306)/dbname


Databasetilslutningen er vellykket, når jeg kører dette på min Mac, men ikke på min pc.


Windows 10 har jeg installeret Ubuntu og Docker for Windows. I bash har jeg installeret docker-klienten, og jeg kan bruge docker-cli'en til at oprette forbindelse til min Windows Docker-vært ved at indstille DOCKER\_HOST miljøvariablen.


Jeg har oprettet et brugerdefineret docker-netværk, som jeg sender til mine 2 containere via --network flag, så de kan se hinanden, og jeg har bekræftet, at de rent faktisk er i stand til at løse deres containernavne.


Tilslutningsstrengen, som min appserver bruger, er nøjagtig den samme, men returnerer følgende fejl:


this authentication plugin is not supported


Linjen i min go-kode, der returnerer denne fejl, er:


db, err = sql.Open("mysql", dbConnStr)


Hvad mangler jeg? Hvilken godkendelses plugin?


Her er output fra docker info på min 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:
 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

Bedste reference


MySQL billede på docker hub ændrer 'nyeste' tag fra 5.7 til 8 for nylig (2018/04/20), som har mange afbrudte ændringer. Brug af 'mysql: 5.7' i stedet for 'mysql' skal løse dit problem.