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

10 comments:

  1. interesante, pronto lo voy a instalar, aunque noto que este viene muy diferente a como esta en la wiki de arch, por lo que no se cual de las dos guias seguir

    ReplyDelete
    Replies
    1. Hola que tal "edo", gracias por interesarte en el tema, puedes seguir éstos pasos, una versión básica y útil, pero suficiente para comenzar el trabajo con PostgreSQL, la Wiki de Arch trae mas configuraciones, esa es la diferencia. Cualquier otro comentario, estamos pendientes.

      Delete
  2. Hola diego,

    Estoy migrando de Ubuntu a Manjaro, y da gusto encontrar posts tan claro y sencillos como éste.
    Muchas gracias !

    ReplyDelete
  3. Thanks! wokrs even without knowledge of the Spanish :)

    ReplyDelete
  4. Me da error al iniciar los servicios, y no encoentro el archivo /var/lib/postgres/data/postgresql.conf

    ReplyDelete
  5. amigo tengo un problema en la ultima parte, en esta linea
    ---> sudo su postgres -c "psql template1"

    me solicita password, he intentado con mi password root, mi pass de usuario, la password que cree para el usuario administrador de postgres y nada, podrías ayudarme.

    uso manjaro 15.12, tengo passw para mi usuario y otra para el root, aparte el que cree para el admin de postgres que esta en la linea anterior de tu tutorial (usando passwd postgres como dijiste)

    todo eso lo cree usando el usuario root, ya que en tu tuto no decis con que cuenta se crea todo y aparte no me dejaba con mi usuario así que use root, el problema es que no se como resolverlo, intente hacerlo estando como root, como usuario postgres y nada, tengo el server iniciado como decis el único paso que me trabe es este que me pide password y sale esto
    ---->

    could not change directory to "/home/myusuario": Permiso denegado
    Password:
    psql: FATAL: la autentificación password falló para el usuario «postgres»

    como usuario root sale esto
    --->

    Password:
    psql: FATAL: la autentificación password falló para el usuario «postgres»

    ReplyDelete
  6. trate con esto estando en el terminal con mi usuario normal,
    --->
    sudo -u postgres createuser -EP myusuario
    could not change directory to "/home/myusuario": Permiso denegado
    Enter password for new role:
    Enter it again:
    Password:
    createuser: could not connect to database postgres: FATAL: la autentificación password falló para el usuario «postgres»

    ReplyDelete
  7. ok ya solucione esto, como trabajo en un entorno local omití el paso donde tenia que modificar el archivo pg_hba.conf de ident x md5 ya que ese era el problema que no podía seguir con este paso
    ---> sudo su postgres -c "psql template1"
    ahora con ident si puedo asignar una password a "psql template1"

    y si usaba md5 me decía lo que escribí anteriores mensajes arriba, no me dejaba ya que me pedía password, una password que no sabia cual era, no funcionaba con mi passw de usuario, ni mi root, ni la passw que cree para el administrador de postgres, bueno si alguien sabe como puedo ahora usar md5 escriban así esta mas seguro mi entorno local, saludos

    ReplyDelete
  8. Parabéns pelo Tutorial !!

    ReplyDelete