Archivos de Categoría: PostgreSQL @es

Cambiar la contraseña del usuario postgres en PostgreSQL

Para cambiar la contraseña del usuario postgres NUNCA deberías hacer esto:

$ sudo passwd postgres

Por defecto la cuenta del usuario postgres está bloqueada y si le cambias la contraseña usando el comando passwd la cuenta es inmediatamente desbloqueada, permitiendo así el login en el sistema a cualquier persona que adivine la contraseña. Esto puede resultar muy peligroso si se configura una contraseña muy sencilla.

La manera correcta de cambiar la contraseña es desde el terminal psql con el comando password:

$ sudo -u postgres psql postgres
postgres=# password postgres
Enter new password: 
Enter it again: 
postgres=# q

Ref: http://serverfault.com/a/325596

Arreglar ‘ERROR: column “spclocation” does not exist’ en phpPgAdmin

Iba a crear una nueva base de datos desde phpPgAdmin y me pareció este error:

ERROR:  column "spclocation" does not exist
LINE 1: ...pg_catalog.pg_get_userbyid(spcowner) AS spcowner, spclocatio...
                                                             ^

php-postgresql

Para solucionarlo hay que añadir un poco de código a phpPgAdmin. En mi caso funcionó para las versiones phpPgAdmin 5.0.4 y PostgreSQL 9.3 pero si tienes por ejemplo PostgreSQL 9.2 tan solo cambia el número de la versión y debería funcionar.

  1. Abre la ubicación de phpPgAdmin y entra en la carpeta /classes/database.
  2. Abre Connection.php y añade una linea case con la versión de tu PostgreSQL:
    // Detect version and choose appropriate database driver
    switch (substr($version,0,3)) {
        case '9.3': return 'Postgres93'; break;
        case '8.4': return 'Postgres'; break;
        case '8.3': return 'Postgres83'; break;
        case '8.2': return 'Postgres82'; break;
        case '8.1': return 'Postgres81'; break;
        case '8.0':
        case '7.5': return 'Postgres80'; break;
        case '7.4': return 'Postgres74'; break;
    }
  3. Copia Postgres84.php a Postgres93.php.
  4. Abre Postgres.php y copia las funciones getTablespaces y getTablespace.
  5. Abre Postgres93.php y cambia el nombre de la clase a Postgres93 y el valor de la variable $major_version a 9.3.
  6. En Postgres93.php pega las funciones que habías copiado antes dentro de la clase.
  7. Sustituye ", spclocation," por ", pg_tablespace_location(oid) as spclocation," en las 2 funciones.

Ref: http://stackoverflow.com/questions/13467949/error-on-creating-database-in-phppgadmin