I want connect Postresql database with golang
Code :
func NewPostSql()(*sql.DB,error) {
db, err := sql.Open("postgres", "postgres://postgres:ellez2004@localhost:5432/app?sslmode=disable")
if err != nil {
return nil,err;
}
if err := db.Ping();err != nil {
fmt.Println("error: ", err.Error());
}
return db,nil;
}
But i get error even though ssl = disable: Error:
pq: SSL is not enabled on the server
How can I fix this??
CodePudding user response:
client := fmt.Sprintf("postgres://%s:%s@%s:%s/%s?sslmode=%s", os.Getenv("DATABASE_PG_USER"), os.Getenv("DATABASE_PG_PASSWORD"), os.Getenv("DATABASE_PG_HOST"), os.Getenv("DATABASE_PG_PORT"), os.Getenv("DATABASE_PG_NAME"), os.Getenv("DATABASE_PG_IDLE_SSLMODE"))
db, err := sqlx.Open("postgres", client)
if err != nil {
return nil, err
}
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
_, err = db.Conn(ctx)
if err != nil {
return nil, err
}
err = db.Ping()
if err != nil {
return nil, err
}
return db, err
CodePudding user response:
func NewPostSql() (*sql.DB, error) {
db, err := sql.Open("postgres", "postgres://ellez2004@localhost:5432/app?sslmode=disable")
if err != nil {
return nil, err
}
if err := db.Ping(); err != nil {
fmt.Println("error: ", err.Error())
}
return db, nil
}
You should not use postgres twice.
