连接mysql

来源:3-8 本章小结

慕设计9508758

2019-08-22

老师好,我有两个问题:

  1. 我看连接mysql的代码并没有在main函数中,请问我们在跑go run main.go的时候,是哪个步骤自动连接上mysql了呢?conn.go中的init()会自动发起连接是吗?
  2. 我用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>


0
0

Go实战仿百度云盘-实现企业级分布式云存储系统

紧随“云时代”技术潮流,分布式云存储系统,做第一代云程序员

1077 学习 · 494 问题

查看课程