我有一個調用 sql 連接的 api。這是到某個遠程服務器的 sql 連接。執行查詢時出現錯誤“dial tcp xxx:xxx:xxx:xxx:3306: connect: connection refused”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 refused]
1 回答

慕神8447489
TA貢獻1780條經驗 獲得超1個贊
我的兩分錢:
使用 sql.DB 中的 Ping() 方法驗證您是否真的連接到 mysql — 但是您必須注意某些錯誤可能是暫時的。例如,如果您遇到網絡問題或數據庫“重啟”(高可用性取決于許多因素)
檢查您是否使用了正確的 ip 和端口。也許數據庫和應用程序在不同的網絡中,或者數據庫服務器綁定了多個網卡。
另外,檢查這是否有幫助 https://github.com/go-sql-driver/mysql#allowcleartextpasswords
- 1 回答
- 0 關注
- 143 瀏覽
添加回答
舉報
0/150
提交
取消