Con todos los problemas que hay detras de MySQL siempre estoy con la idea de cambiarme a PostgreSQL que ademas de no estar en peligro de desaparecer es mucho mas potente que MySQL…segun gente que creo que sabe del tema :)

Las razones por la que sigo o seguia usando MySQL son 2:

  1. Casi todos mis proyectos que hago con KumbiaPHP framework los almacenaba en godaddy o hosting que solo tienen MySQL como motor base de datos.
  2. La mas importante razon es que no habia podido instalar PostgreSQL en Linux.

Contra la primer razon no puedo hacer nada pero lo segundo he logrado cambiarlo al fin :) La verdad la instalacion es una pavada si se sabe como hacerlo. Voy a describir los pasos que yo segui, he logrado instalar PostgreSQL 8.4 en Kubuntu 9.10 pero servira para cualquier derivado de Ubuntu en sus ultimas versiones.

Lo primero sera instalar los paquetes necesarios

sudo apt-get install postgresql postgresql-client pgadmin3

Eso instalara el motor, el cliente y un administrador. A continuacion tenemos que cambiar 2 claves, una es la del usuario administrador de PostgreSQL y la otra es la del usuario postgres que se crear al instalar los paquetes de arriba.

Para cambiar la pass del sistema hacemos asi:

sudo passwd postgres

te pedira la contraseña 2 veces para asegurarte que escribas bien. Ahora cambiamos la contraseña de administrador de PostgreSQL, lo hacemos asi:

sudo su postgres -c “psql template1”

A continuacion…

template1=# ALTER USER postgres WITH PASSWORD ‘nueva_contraseña’;

La verdad no tengo idea si se debe usar la misma contraseña que cuando cambiamos la del sistema pero por las dudas pongan la misma…y no se olviden del punto y coma del final…me tomo media hora darme cuenta que me lo habia olvidado :oops: Si la contraseña se cambia correctamente les devolvera el mensaje ALTER ROLE y luego escriben en la misma consola:

template1=# \q

para salir.

Bien ahora debemos editar 2 archivos porque la instalacion por defecto bloquea las conexiones y no podremos conectarnos desde PgAdmin3. Yo uso el editor kate pero si estan en ubuntu reemplazen kate por gedit.

sudo kate /etc/postgresql/8.4/main/postgresql.conf

En el archivo buscan la linea

#listen_addresses = ‘localhost’

y la cambian por

listen_addresses = ‘*’

y tambien buscan la linea

#password_encryption = on

y la cambian por

password_encryption = on

Ahora otro archivo…

sudo kate /etc/postgresql/8.4/main/pg_hba.conf

Buscan las lineas

“local” is for Unix domain socket connections only local all all ident

sameuser

Y las cambian por

“local” is for Unix domain socket connections only local all all md5

Ahora reinician el demonio para que los cambios surtan efecto:

sudo /etc/init.d/postgresql-8.4 restart

Y eso es todo, con eso ya deberian poder conectarse y administrar postgress desde PgAdmin3.

Algunas consideraciones:

  • Los cambios que hicimos en postgresql.conf son para permitir conexiones remotas por lo tanto no es necesario activarlos, si comodo pero no necesario.
  • Puede que les haya pasado como a mi, en vez del comando de instalacion que yo puse al inicio pusieron otro o por X motivos no tienen la carpeta main no los 2 archivos que hay que editar, en ese caso deben ejecutar:

pg_createcluster 8.4 main

  • A lo largo de este mini tuto vieron que en varios comandos use la version de postgress pero que en la instalacion no la especifique, eso es porque al instalar con los comandos que yo les digo se instalara siempre la ultima version…para saber que version escriban esto en la consola luego de la instalacion:

psql –version

les devolvera algo como

psql (PostgreSQl) 8.4.2

o sea que en todas partes donde se requiera el numero de version usaran ‘8.4’

Fuentes: guiaubuntu, [lobotuerto](http://lobotuerto.com/blog/2009/07/20/como-instalar-postgresql- en-ubuntu-9-04-jaunty-jackalope/) y @DeivinsonTejeda

Un poco largo pero hasta donde se vale la pena…ademas si usan KumbiaPHP framework cambiar de un motor a otro su aplicaciones es cuestion de cambiar una linea en todo el programa y ya :)