尝试使用go与postgres数据库进行通信,准备如下语句:
var stmt *sql.Stmt
var err error
stmt, err = db.Prepare(selectStatement)
if err != nil {
fmt.Printf("db.Prepare error: %v\n",err)
return err
}
Run Code Online (Sandbox Code Playgroud)
引发以下错误:
db.Prepare error: pq: SSL is not enabled on the server
Run Code Online (Sandbox Code Playgroud)
有解决方案吗
如果需要,我可以添加更多信息.
Kav*_*avu 152
您应该建立没有SSL加密的数据库连接,如下所示:
db, err := sql.Open("postgres", "user=test password=test dbname=test sslmode=disable")
Run Code Online (Sandbox Code Playgroud)
eat*_*hil 107
如果您的数据源名称是网址,您将这样做:
db, err := sql.Open("postgres", "postgres://username:password@localhost/db_name?sslmode=disable")
Run Code Online (Sandbox Code Playgroud)
sslmode 只是像查询参数一样添加到db url中.
Har*_*ren 12
要建立没有SSL的连接,请尝试
postgres://username:password@host:5432/database?sslmode=disable
Run Code Online (Sandbox Code Playgroud)
这就是我让它工作的方式:
db, err := sql.Open("postgres", "postgres://{user}:{password}@{hostname}:{port}/{database-name}?sslmode=disable")
Run Code Online (Sandbox Code Playgroud)
请注意:
如果您已指定了sslmode=disable,但其他参数为空,甚至会发生这种情况。例如dbname=
例如,连接字符串:
user=test password=test dbname=sslmode=disable也将发出此错误,因为dbname为空。
| 归档时间: |
|
| 查看次数: |
41295 次 |
| 最近记录: |