使用mysql驱动程序连接数据库时出错

时间:2014-08-11 13:10:25

标签: mysql go

我尝试按照https://github.com/go-sql-driver/mysql#installationhttp://go-database-sql.org/accessing.html中的说明创建sql.db。

我的代码的第一行有这个

db, err := sql.Open("mysql", "username@localhost/my_db")

当我在终端上运行程序时,我得到了这个:

Default addr for network ''localhost'' unknown

这是为什么?当我检查用户并托管mysql时,它表示用户名'和' localhost'。我按照这样的参数:

[username[:password]@][protocol[(address)]]/dbname[?param1=value1&...&paramN=valueN]

3 个答案:

答案 0 :(得分:82)

您可能希望直接指定协议(例如' tcp'),而不是localhost
those examples

user:password@tcp(localhost:5555)/dbname

在你的情况下:

username@tcp(localhost)/my_db

注意,如果您使用默认协议(tcp)和主机(localhost:3306),则可以将其重写为

user:password@/dbname

答案 1 :(得分:1)

我遇到了同样的问题,投票最多的答案帮不了我。拯救我的是将 (host:port) 放在引号内 --> "(host:port)"

答案 2 :(得分:0)

我遇到了类似的问题,因为我在linux VM上运行了docker容器。在我的应用程序(server.go)中,我更改了localhost值以使用我的虚拟机的ip,然后成功构建并运行容器。

mysql容器(3307)< - > [(application mysql :: 3307)container](公开3000)< - >世界