gpt4 book ai didi

mysql - 如何使用unix套接字连接MySQL?

转载 作者:行者123 更新时间:2023-12-03 08:20:54 25 4
gpt4 key购买 nike

我想使用 Unix 套接字连接来连接到 MySQL。我不确定如何传递连接字符串中的变量。我在某处读到我也可以使用 Config.FormatDSN 结构来定义值,但我不知道如何。

// Creates a database connection and returns its instance
func Connection() (*sql.DB, error) {
conn, err := sql.Open("mysql", "username/password@unix(socketpath)/dbname")
return conn, err
}

最佳答案

所以,经过一些尝试和方法,我找到了解决我的问题的方法。如果你想使用Unix套接字连接Golang中的MySQL,你可以通过以下方式准备你的连接字符串

{{username}}:{{password}}@unix({{socketPath}})/{{dbname}}?charset=utf8

{{}} 中包含的值是变量。

注意:套接字路径必须是绝对路径。例如:/usr/local/bin/path/to/socket

我发现这个引用非常有帮助 https://chromium.googlesource.com/external/github.com/go-sql-driver/mysql/+/a48f79b55b5a2107793c84c3bbd445138dc7f0d5/README.md

如果您有兴趣,这里是完整的实现


import (
"database/sql"
"fmt"

_ "github.com/go-sql-driver/mysql"
)

type ConnectionSpecs struct {
username string
password string
socketPath string
database string
}

func GetConnStr() string {
connConfig := ConnectionSpecs{
username: "root",
password: "my-password",
socketPath: "/usr/local/bin/path/to/socket",
database: "test",
}

connStr := connConfig.username + ":" + connConfig.password +
"@unix(" + connConfig.socketPath + ")" +
"/" + connConfig.database +
"?charset=utf8"
return connStr
}

// Creates a database connection and returns the same
func Connection() (*sql.DB, error) {
var connStr = GetConnStr()
fmt.Println(connStr)
conn, err := sql.Open("mysql", GetConnStr())
return conn, err
}

关于mysql - 如何使用unix套接字连接MySQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67867424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com