Go语言 使用mysqldriver连接数据库时出错

anauzrmj  于 2023-01-03  发布在  Go
关注(0)|答案(3)|浏览(143)

我试图按照这里的说明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时,它显示'username'和'localhost'。我按照如下参数:

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

30byixjq1#

您可能希望指定协议(如'tcp'),而不是直接指定localhost
请参见这些示例:

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

在您的情况下:

username@tcp(localhost)/my_db

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

user:password@/dbname

Lakshminarayanan Guptha在注解中添加:
在我的例子中,- user:password@tcp/dbname工作正常

sulc1iza

sulc1iza2#

我遇到了同样的问题,投票最多的答案也帮不了我,救了我的是把(host:port)放在引号里--〉"(host:port)"

lsmepo6l

lsmepo6l3#

当我在Linux VM上运行Docker容器时,我也遇到过类似的问题。在我的应用程序(server.go)中,我更改了localhost值以使用我的虚拟机的IP,然后成功地构建和运行了容器。

mysql container (3307) <--> [(application mysql:<vm ip>:3307) container](expose 3000) <-->  world

相关问题