Tôi đang cố gắng kết nối với cơ sở dữ liệu mysql từ xa bằng cách sử dụng go và gói cơ sở dữ liệu/sql. Tôi tìm thấy tài liệu go/mysql gây nhầm lẫn. Có vẻ như không có ví dụ duy nhất làm thế nào để kết nối với một máy chủ từ xa. Giống như mọi người sẽ sử dụng localhost. Cho đến nay tôi có điều nàyGolang cách mở kết nối mysql từ xa?
import (
"database/sql"
_ "github.com/ziutek/mymysql/godrv"
db, err := sql.Open("mymysql", "tcp:"+dbHost*dbName+"/"+user+"/"+pass)
defer db.Close()
Dựa trên các tài liệu từ https://github.com/ziutek/mymysql
[PROTOCOL_SPECFIIC*]DBNAME/USER/PASSWD
//
// where protocol specific part may be empty (this means connection to
// local server using default protocol). Currently possible forms:
// DBNAME/USER/PASSWD
// unix:SOCKPATH*DBNAME/USER/PASSWD
// unix:SOCKPATH,OPTIONS*DBNAME/USER/PASSWD
// tcp:ADDR*DBNAME/USER/PASSWD
// tcp:ADDR,OPTIONS*DBNAME/USER/PASSWD
Tôi cũng đã cố gắng
db, err := sql.Open("mymysql", "tcp:"+dbHost, dbName+"/"+user+"/"+pass)
và nó không làm việc một trong hai. Toàn bộ cú pháp có vẻ khó hiểu.
Sử dụng URI mà bạn đề xuất tôi nhận được "Phần cơ sở dữ liệu sai của URI". DNS có bắt buộc hoàn toàn không? Không thực sự hợp lý ... –
DSN thường không yêu cầu tên DB. Tôi muốn kiểm tra xem bạn đang sử dụng thư viện nào. Tôi đã sử dụng một thư viện khác. – dethtron5000
nevermind, nó đang hoạt động ... Tôi đã sử dụng lib cũ (ziutek). Cảm ơn sự giúp đỡ của bạn! –