我尝试按照https://github.com/go-sql-driver/mysql#installation和http://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&...¶mN=valueN]
答案 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)< - >世界