Contexto
Tengo un simple pg_service.conf
archivo que se encuentra en ${HOME}/pg_service.conf
el cual el contenido es el siguiente:
# comment
[service_name]
host=localhost
port=5432
dbname=databasename
user=username
Problema
Siempre que intente crear un nuevo servidor de pgAdmin III mediante el establecimiento de 'service_name' en la opción 'Servicio', me encuentro con este mensaje de error:
También traté de copiar el pg_service.conf
archivo de cerca de la .pg_hba.conf
y reiniciar PostgreSQL ; el mismo problema se produjo.
Un mismo error se produce cuando trato de ejecutar un psql
comando:
psql: definition of service "service_name" not found
¿Cómo podría hacer que funcione?
He encontrado esto , pero eso no me ayuda mucho porque es para los usuarios de Windows.
Ambiente
Estoy en Ubuntu 18.04 usando "PostgreSQL 10.12 (Ubuntu 10.12-0ubuntu0.18.04.1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0, 64-bit"
.
1. solución basada Usuario
Cuidado con el punto .
delante del nombre de archivo!
La siguiente configuración funciona con PG 10.12 en CentOS 7.7 y .pg_service.conf
situado en el $HOME
directorio:
$ cat .pg_service.conf
[service_name]
host=localhost
port=5410
dbname=postgres
user=postgres
A continuación, conecte a PostgreSQL de la siguiente manera;
$ psql postgresql://?service=service_name
psql (10.12)
Type "help" for help.
la comprobación de puerto:
postgres=# show port;
port
------
5410
(1 row)
Comprobación de la conexión:
postgres=# \c
You are now connected to database "postgres" as user "postgres".
postgres=#
solución 2. todo el sistema de
Puede escribir esto para comprobar si la ruta donde lo global pg_service.conf
fichero tiene que estar situado:
$ pg_config --sysconfdir
/etc/postgresql-common
Puede copiar el pg_service.conf
archivo en este directorio (pero sin el punto .
aquí). Se tiene que poseer por root.
consejos generales
1) La precedencia de Archivo
Como se indica en el documento, "el archivo de usuario tiene prioridad sobre el archivo de todo el sistema.
2) Contraseña
En el caso de una autenticación del mismo , ambas soluciones deben trabajar con una contraseña almacenada en el .pgpass
archivo. En ese caso, no es necesario escribir en el .pg_service.conf
archivo.