我有一個呼叫 sql 連接的 api。這是到某個遠程服務器的 sql 連接。執行查詢時出現錯誤“dial tcp xxx:xxx:xxx:xxx:3306: connect: connection denied”
sql連接代碼
func ConnectToMysqlDB(dbUser, dbPassword, dbHost, dbName string) *sql.DB {
connstr := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s", dbUser, dbPassword, dbHost, "3306", dbName)
var err error
log.Println("Carrying mysql query", connstr)
dB, err := sql.Open("mysql", connstr)
if err != nil {
log.Fatalf("error connection to mysql [%v] ..!!", err)
}
log.Print("mysql initialized ..!!")
return dB
}
查詢功能
func GetUserIDs(dB *sql.DB, users []string) []int {
var newUsers []int
var newUser int
query := "SELECT id FROM phplist_user_user WHERE foreignkey in (%s)"
var usersStr string
for _, val := range users {
usersStr = usersStr "'" val "'" ","
}
usersStr = strings.TrimSuffix(usersStr, ",")
query = fmt.Sprintf(query, usersStr)
rows, err := dB.Query(query)
if err != nil {
fmt.Printf("Error in query : [%v]", err)
}
defer rows.Close()
for rows.Next() {
rows.Scan(&newUser)
newUsers = append(newUsers, newUser)
}
return newUsers
}
我收到錯誤的情況是什么:查詢錯誤:[dial tcp xxx.xxx.xxx.xxx:3306: connect: connection denied]
uj5u.com熱心網友回復:
我的兩分錢:
- 使用 sql.DB 中的 Ping() 方法驗證你是否真的連接到了 mysql——但是你必須注意一些錯誤可能是暫時的。例如,如果您遇到網路問題或資料庫“重啟”(高可用性取決于許多因素)
- 檢查您是否使用了正確的 ip 和埠。可能資料庫和應用程式在不同的網路中,或者資料庫服務器系結了多個網卡。
另外,檢查這是否有幫助 https://github.com/go-sql-driver/mysql#allowcleartextpasswords
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/447715.html
