连接mysql
来源:3-8 本章小结

慕设计9508758
2019-08-22
老师好,我有两个问题:
- 我看连接mysql的代码并没有在main函数中,请问我们在跑go run main.go的时候,是哪个步骤自动连接上mysql了呢?conn.go中的init()会自动发起连接是吗?
- 我用docker跑了两个mysql容器,master和slave。init方法中必须要连接13306端口才能连接上mysql,如下代码:
func init() {
db, _ = sql.Open("mysql", "root:123456@tcp(127.0.0.1:13306)/fileserver?charset=utf8")
db.SetMaxOpenConns(1000)
err := db.Ping()
if err != nil {
fmt.Println("Failed to connect to mysql, err:" + err.Error())
os.Exit(1)
}
}
如果按照你的demo中的连接root:123456@tcp(127.0.0.1:13306)/fileserver?charset=utf8,我连接不上, 所以这里的代码应该怎么写来连接mysql呢?
谢谢老师
写回答
1回答
-
xiaomo
2019-08-25
同学你好,
(1)是的,init()方法是go的内置初始化方法,在导入的时候就会自动执行。
(2)想问下root这个用户已经开启了可以远程登录的权限吗?另外连接的ip应该不能是127.0.0.1回环地址, 需要是实际的一个ip地址,如果是在docker中启动的容器,可以这样查一下:
docker inspect --format='{{.NetworkSettings.IPAddress}}' <容器名/ID>
00
相似问题