我正在try 从我本地的GO文件连接在Docker上创建的mysqlDB.
main.go
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func main() {
fmt.Println("Hello")
// All following 4 codes won't connect to the database.
// "db01" is docker container name. "test" is db name.
// db, err := sql.Open("mysql", "root:password@tcp(localhost:3306)/test")
// db, err := sql.Open("mysql", "root:password@tcp(localhost)/test")
// db, err := sql.Open("mysql", "root:password@tcp(db01)/test")
db, err := sql.Open("mysql", "root:password@tcp(db01:3306)/test")
if err != nil {
fmt.Println(err)
}
defer db.Close()
fmt.Println(db)
err = db.Ping()
if err != nil {
fmt.Println(err)
}
}
docker command
docker run --name db01 -dit -e MYSQL_ROOT_PASSWORD=password mysql:latest
error message
try 使用本地主机时:3306
dial tcp [::1]:3306: connect: connection refused
在try 使用DB01时
dial tcp: lookup db01: no such host
MySQL数据库是在docker容器上创建的,没有任何问题,所以我认为go文件和docker容器之间的连接不太顺利.
我必须创建docker-compose.yml文件吗? 我现在想在没有它的情况下连接.
谢谢.