Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何使用用户和密码打开数据库连接_Sql_Postgresql_Go - Fatal编程技术网

Sql 如何使用用户和密码打开数据库连接

Sql 如何使用用户和密码打开数据库连接,sql,postgresql,go,Sql,Postgresql,Go,如何在golang中的sql.Open命令中包含postgresql用户名和密码?下面的方法似乎不起作用。谢谢 func db() (database *sql.DB) { database, err := sql.Open("postgres", "dbname=chitchat user=tom password=tomtom sslmode=disable") if err != nil { log.Fatal(err) } return }

如何在golang中的sql.Open命令中包含postgresql用户名和密码?下面的方法似乎不起作用。谢谢

func db() (database *sql.DB) {
    database, err := sql.Open("postgres", "dbname=chitchat user=tom password=tomtom sslmode=disable")
    if err != nil {
        log.Fatal(err)
    }
    return
}
您可以在或(使用lib/pq)中看到示例:

您还可以使用URL连接到数据库。例如:


OP建议:

  • 授予对数据库的访问权限
    将数据库聊天的所有权限授予tom
  • 列出
    chitchat
    数据库中的所有序列:
    从pg_类c中选择c.relname,其中c.relkind='S'
  • 授予对它们中每一个的访问权限
    将序列用户的所有权限授予tom
    将序列线程的所有权限授予tom
    向tom授予sequence posts\u id\u seq的所有权限
    将序列会话的所有权限授予tom

  • 您在err中看到了什么错误消息?发现sql.Open正常,但我无法创建用户。这是问题解决时的完整代码,但我认为有更好的方法。这里是:1)授予对数据库的访问权限将数据库聊天的所有特权授予tom;2) 列出聊天数据库中的所有序列,从pg_类c中选择c.relname,其中c.relkind='S';3) 授予对每个用户的访问权将序列用户的所有权限授予tom;将序列线程的所有权限授予tom;向tom授予序列POST_id_seq上的所有特权;向tom授予序列会话的所有特权;谢谢你,伙计!重试了几次,终于成功了。我去掉了感叹号“!”但是在密码中。@Mike是的,这只是一个示例(包括一个“!”),请查看代码链接。我使用测试成功地使它工作,但上面的聊天代码仍然存在问题。@Mike,让我们先结束这个问题:您可以打开一个新问题,其中包含您在代码中看到的确切错误。
    db, err := sql.Open("postgres", "user=pqgotest dbname=pqgotest sslmode=verify-full")
    db, err := sql.Open("postgres", "dbname=dat_test user=dat password=!test host=localhost sslmode=disable")
    
    db, err := sql.Open("postgres", "postgres://pqgotest:password@localhost/pqgotest?sslmode=verify-full")