I am using jdbc to connect to a postgresql database in a java application (actually the app is written in Groovy). I have postgresql set up to use the 'trust' authentication method. Is it possible to open a jdbc connection without specifying a password? When I try to use the normal constructor with a blank password, it fails with
Exception in thread "Thread-2" org.postgresql.util.PSQLException: FATAL: password authentication failed for user "myuser"
Even though, from the command line, this works fine
psql -U myuser mydatabase
Welcome to psql 8.3.5, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
Yes, you can.
Note that Postres JDBC driver always uses IP sockets ( host
in pg_hba.conf
), even if database is on the local machine, then psql
can use local sockets ( local
in pg_hba.conf
). So, if psql
works with trust
authentication and JDBC doesn't, you probably should configure trust
authentication for IP sockets, see documentation .
Already answered but:
When you connect using the psql
client program, and don't specify a host ( -h
), the default is to use a local socket (at least in Linux). In JDBC, instead, you will use a TCP/IP socket. Then, to check your connection problem you should invoke psql with the same settings you are using in JDBC, host included.
For example
psql -U myuser -h 127.0.0.1 mydatabase # uses TCP/IP
Which is not the same as
psql -U myuser mydatabase # uses local socket (non TCP/IP)
至少包括3.1版的GlassFish在指定空JDBC密码时存在问题 。
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.