Showing posts with label PostgreSQL. Show all posts
Showing posts with label PostgreSQL. Show all posts

Saturday, October 26, 2013

Reparando PostgreSQL: Job for postgresql.service failed

"Job for postgresql.service failed. See 'systemctl status postgresql.service' and 'journalctl -xn' for details."

La solución a éste problema se salva con dos pasos. El primer paso es ejecutar una linea en Terminal como fué definida durante la Instalacion de PostgreSQL con las particularidades de Arch Linux.

Reasignamos el PGROOT directory
# chown -R postgres:postgres /var/lib/postgres/
Durante la instalacion antes del argumento -R, se pasaba un -c, ahora no es necesario.

Borramos el archivo 'postmaster.pid'
# cd /var/lib/postgres/data/
# ls
# rm postmaster.pid

Con éso es seguro que podemos iniciar el Servicio de PostgreSQL sin problema alguno.
Start PostgreSQL
# systemctl start postgresql
---- Podremos no ver algún mensaje en pantalla, por lo que solicito el Status

Status PostgreSQL
# systemctl status postgresql
---- Tengo el Log de la operacion  actual con PostgreSQL

De no hacer esto, e intento arreglarlo con un comando extra no necesario, pero publicado así en algunos blogs, obtendremos un mensaje parecido a:
# su - postgres
$ initdb -D '/var/lib/postgres/data'
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".

initdb: directory "/var/lib/postgres/data" exists but is not empty
If you want to create a new database system, either remove or empty
the directory "/var/lib/postgres/data" or run initdb

Quedo a sus comentarios por si podemos mejorar éste método.

Basado en:
https://bbs.archlinux.org/viewtopic.php?pid=1182956#p1182956

Monday, July 29, 2013

Instalar PostgreSQL en Manjaro Linux

Iniciamos con
# pacman -Sy postgresql
# pacman -Sy pgadmin3

Creamos el directorio de datos, ruta que buscará la variable PGROOT definida inicialmente en el Archivo de Configuración de Postgres. Si cuentas con la versión 0.8.8 de Manjaro, omite éste paso, en ésta versión si se crea durante la instalación.
# mkdir /var/lib/postgres/data

Asignamos permisos de Propietario sobre el directorio /var/lib/postgres al usuario postgres:
# chown -c -R postgres:postgres /var/lib/postgres

El usuario postgres debe iniciar la Base de Datos como:
# su - postgres
$ initdb -D '/var/lib/postgres/data'

Antes de iniciar el Server decidimos añadir la configuracion para que pueda ser accedida desde Host Remotos, Primero debemos modificar el archivo postgresql.conf, entrar a /var/lib/postgres/data/:
$ vim postgresql.conf

Buscamos la linea:
#listen_addresses = 'localhost'
y la cambiamos por:
listen_addresses = '*'
También buscamos la siguiente linea:
#password_encryption = on
y la cambiamos por:
password_encryption = on

Ahora debemos modificar el archivo “pg_hba.conf”
$ vim pg_hba.conf

Modificamos la linea
# "local" is for Unix domain socket connections only
local   all         all                               ident
por
# "local" is for Unix domain socket connections only
local   all         all                               md5
Esto lo hacemos para usar autentificación md5 con el usuario postgres. Salimos de la sesión con postgres:
$ exit

Para iniciar PostgreSQL realizamos:
# systemctl start postgresql

Lo siguiente es cambiar la contraseña del usuario administrador de PostreSQL del Sistema:
# passwd postgres

Ahora debemos cambiar la contraseña del usuario postgres en el motor, para ello primero entramos con la siguiente linea
# sudo su postgres -c "psql template1"
y luego ingresamos el siguiente comando
ALTER USER postgres WITH PASSWORD 'contraseña'
Finalmente para salir de postgres, ingresamos el siguiente comando:
\q

Por no dejar reiniciamos el Server
# systemctl restart postgresql

Una última opcion es añadir el Servicio de PostgreSQL a la lista de demonios que se inician con el Sistema con:
# systemctl enable postgresql

Armamos estos pasos con la ayuda de la Wiki de Arch