前提・実現したいこと
プログラミング初心者です。dockerを使ってgoとデーターベースのコンテナを立て、goのコンテナからPing()を使って接続しようとしたところ、以下のメッセージが発生しました。
また、sqlx.Open()はエラーを返していないようです。
データーベースのコンテナからはマウントしたデータベースの反映の確認まですることができ、SELECTなども正常に動きました。どうしたら正常につながりますか?
ネットの見様見真似でやっているので無駄なコードがあるかもしれません。
発生している問題・エラーメッセージ
Connected! 2021/10/09 06:23:08 Cannot Connect to Database: dial tcp: lookup local_mysql on 127.0.0.11:53: read udp 127.0.0.1:36758->127.0.0.11:53: i/o timeout exit status 1
該当のソースコード
go
1package main 2 3import ( 4 "fmt" 5 "log" 6 7 _ "github.com/go-sql-driver/mysql" 8 "github.com/jmoiron/sqlx" 9) 10 11type City struct { 12 ID int `json:"id,omitempty" db:"ID"` 13 Name string `json:"name,omitempty" db:"Name"` 14 CountryCode string `json:"countryCode,omitempty" db:"CountryCode"` 15 District string `json:"district,omitempty" db:"District"` 16 Population int `json:"population,omitempty" db:"Population"` 17} 18 19func main() { 20 db, err := sqlx.Open("mysql", "root:password@tcp(local_mysql:3306)/world?charset=utf8&parseTime=True&loc=Local") 21 if err != nil { 22 log.Fatalf("Cannot Connect to Database: %s", err) 23 } 24 25 fmt.Println("Connected!") 26 27 err = db.Ping() 28 if err != nil { 29 log.Fatalf("Cannot Connect to Database: %s", err) 30 } 31}
dockerCompose
1version: "3" 2services: 3 db: 4 build: ./mysql 5 volumes: 6 - ./mysql/db:/docker-entrypoint-initdb.d #world.sqlをマウント 7 image: local_mysql 8 environment: 9 - MYSQL_ROOT_PASSWORD=password 10 11 ports: 12 - "3306:3306" 13 14 15 phpmyadmin: 16 image: phpmyadmin/phpmyadmin 17 environment: 18 - PMA_ARBITRARY=1 19 - PMA_HOST=db 20 - PMA_USER=root 21 - PMA_PASSWORD=password 22 links: 23 - db 24 ports: 25 - 4040:80 26 volumes: 27 - ./phpmyadmin/sessions:/sessions 28 29 app: 30 build: . 31 tty: true 32 volumes: 33 - .:/go/src/work 34 depends_on: 35 - db 36 ports: 37 - "8080:8080" 38 39
Dockerfile
1FROM mysql 2 3EXPOSE 3306 4 5ADD ./my.cnf /etc/mysql/conf.d/my.cnf 6 7CMD ["mysqld"] 8 9RUN apt-get update 10
Dockerfile
1FROM golang:latest 2 3RUN mkdir /go/src/work 4 5WORKDIR /go/src/work 6 7ADD . /go/src/work 8
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/09 12:57