golang-web-dev icon indicating copy to clipboard operation
golang-web-dev copied to clipboard

panic: pq: password authentication failed for user "bond"

Open Kai-Perets opened this issue 6 years ago • 4 comments

I keep getting the following error: panic: pq: password authentication failed for user "bond"

I cannot find what's wrong with the code, as it's the one that was used in the course, and in the course it ran perfectly. Can you find the problem?

GO CODE:

package main

import ( "database/sql" "fmt"

_ "github.com/lib/pq"

)

func main() { db, err := sql.Open("postgres", "postgres://bond:password@localhost/bookstore?sslmode=disable") if err != nil { panic(err) } defer db.Close()

err = db.Ping() //"Ping" checks if a connection to a database is still live, and returns an error if it isnt (so if theres no error it means its connected).
if err != nil {
	panic(err)
}
fmt.Println("You've connected to your database")

}

postgreSQL CODE:

postgres=# CREATE DATABASE bookstore; CREATE DATABASE postgres=# CREATE USER bond WITH PASSWORD 'password'; CREATE ROLE postgres=# GRANT ALL PRIVILEGES ON DATABASE bookstore to bond; GRANT

Kai-Perets avatar Dec 08 '19 10:12 Kai-Perets

same issue

MrMegaMango avatar Jan 07 '21 19:01 MrMegaMango

Had the same issue! I have not tested it in further lectures, but I was able to connect following this article: https://www.calhoun.io/connecting-to-a-postgresql-database-with-gos-database-sql-package/

My code ended up looking something like this:

package main

import (
	"database/sql"
	"fmt"

	_ "github.com/lib/pq"
)

const (
	host     = "localhost"
	port     = 5432
	user     = "bond"
	password = "password"
	dbname   = "bookstore"
)

func main() {

	psqlInfo := fmt.Sprintf("host=%s port=%d user=%s "+
		"password=%s dbname=%s sslmode=disable",
		host, port, user, password, dbname)

	db, err := sql.Open("postgres", psqlInfo)
	if err != nil {
		panic(err)
	}
	defer db.Close()

	err = db.Ping()
	if err != nil {
		panic(err)
	}
	fmt.Println("You connected to your database.")
}

Aeronio avatar Jan 22 '21 05:01 Aeronio

In my case, I had misconfigured my local postgres server. Here's the fix:

Find the pg_hba.conf location in psql:

SHOW hba_file;

Edit it...

sudo -u postgres vim /var/lib/pgsql/data/pg_hba.conf

Make sure local connections are set to password:

# IPv4 local connections:
host    all             all             127.0.0.1/32            password
# IPv6 local connections:
host    all             all             ::1/128                 password

Restart postgres:

sudo systemctl restart postgresql.service

chrisdavies avatar Apr 28 '21 14:04 chrisdavies