Diferencia entre revisiones de «PostgreSQL»
(configuración) |
(más config) |
||
Línea 17: | Línea 17: | ||
== Configuración == | == Configuración == | ||
− | Por motivos de seguridad, la configuración por defecto no admite conexiones externas. Para habilitarlas tenemos que editar el fichero | + | === Permitir conexiones remotas === |
+ | Por motivos de seguridad, la configuración por defecto no admite conexiones externas. Para habilitarlas tenemos que editar el fichero ''/etc/postgresql/8.1/main/postgresql.conf''. | ||
$ sudo gedit /etc/postgresql/8.1/main/postgresql.conf | $ sudo gedit /etc/postgresql/8.1/main/postgresql.conf | ||
Línea 40: | Línea 41: | ||
$ sudo /etc/init.d/postgresql-8.1 restart | $ sudo /etc/init.d/postgresql-8.1 restart | ||
+ | |||
+ | === Configurar la lista de acceso === | ||
+ | La configuración de la lista de acceso permite decirle a PostgreSQL qué método de autentificación usar y establecer relaciones de confianza para ciertas máquinas y redes. Hay que editar el fichero ''/etc/postgresql/8.1/main/pg_hba.conf'': | ||
+ | |||
+ | $ sudo vi /etc/postgresql/8.1/main/pg_hba.conf | ||
+ | |||
+ | Al final del archivo se encuentra una lista de acceso predeterminada, ahora, dependiendo de su necesidad puedes hacer lo siguiente: | ||
+ | |||
+ | * Si necesita que cualquier usuario se conecte por medio de una dirección IP en especifico, agregue al final la siguiente línea: | ||
+ | |||
+ | host all all 192.168.1.4 255.255.255.0 md5 | ||
+ | |||
+ | {{Nota|La dirección IP y la SubMascara de Red son ejemplos, cámbielos por datos del usuario que requiera realizar la conexión.}} | ||
+ | |||
+ | * Si necesita que cualquier usuario se conecte por medio de cualquier dirección IP, agregue al final la siguiente línea: | ||
+ | |||
+ | host all all 0.0.0.0 0.0.0.0 md5 | ||
+ | |||
+ | * Si necesita que un usuario determinado se conecte a una base de datos determinada por medio de una dirección IP en especifico, agregue al final la siguiente línea: | ||
+ | |||
+ | host MyDataBase MyUser 192.168.1.4 255.255.255.0 md5 | ||
+ | |||
+ | * Guarda los cambios realizados en el archivo y reinicia el demonio para que los cambios surjan efecto: | ||
+ | |||
+ | $ sudo /etc/init.d/postgresql-8.1 restart | ||
+ | |||
+ | {Nota|Para mayor información de la configuración de la lista de acceso, viste la pagina Web del proyecto de traducción del libro [http://www.sobl.org/traducciones/practical-postgres/node1.html PostgreSQL Práctico], y consulta el capitulo [http://www.sobl.org/traducciones/practical-postgres/node41.html Estructura del Archivo pg_hba.conf].} | ||
== Backup == | == Backup == | ||
Línea 74: | Línea 102: | ||
* [[pgAdmin]] | * [[pgAdmin]] | ||
* [[MySQL]] | * [[MySQL]] | ||
+ | |||
+ | == Enlaces externos == | ||
+ | * [http://www.sobl.org/traducciones/practical-postgres/node1.html PostgreSQL Práctico] | ||
[[Categoría:Administración del sistema]] | [[Categoría:Administración del sistema]] |
Revisión de 10:26 21 sep 2006
PostgreSQL es un potente motor de bases de datos, que tiene prestaciones y funcionalidades equivalentes a muchos gestores de bases de datos comerciales. Es más completo que MySQL ya que permite métodos almacenados, restricciones de integridad, vistas, etc. aunque en las últimas versiones de MySQL se han hecho grandes avances en ese sentido.
Contenido
Instalación
En Ubuntu disponemos paquetes para varias versiones de PostgreSQL: 7.4, 8.0 y 8.1, de modo que instalaremos la última versión a no ser que necesitemos alguna anterior. Los paquetes necesarios para una instalación completa son los de la parte cliente (postgresql-client-8.1) y los de la parte servidora (postgresql-8.1). En un ordenador que usemos como cliente sólo necesitamos los paquetes del cliente. También es recomentable instalar un cliente gráfico que nos facilitará la interacción con el servidor. Un cliente gráfico recomendable es pgAdmin, que funciona muy bien.
Por razones de seguridad estableceremos la nueva contraseña al usuario del sistema creado por PostgreSQL:
$ sudo passwd postgres
Para verificar si la instalación fue satisfactoria accedemos a la shell del servidor de bases de datos:
$ sudo su postgres -c "psql template1"
Si el acceso ha sido satisfactorio cambiamos la contraseña al usuario predeterminado del servidor de bases de datos:
template1=# ALTER USER postgres WITH PASSWORD 'nueva_contraseña';
Configuración
Permitir conexiones remotas
Por motivos de seguridad, la configuración por defecto no admite conexiones externas. Para habilitarlas tenemos que editar el fichero /etc/postgresql/8.1/main/postgresql.conf.
$ sudo gedit /etc/postgresql/8.1/main/postgresql.conf
Ahora buscamos las siguientes líneas que se encuentran comentadas:
#listen_addresses = 'localhost'
Y la substituimos por la siguiente línea:
listen_addresses = '*'
Posteriormente buscamos la siguiente línea y le quitamos la marca de comentario:
#password_encryption = true
Y nos debe quedar lo siguiente:
password_encryption = true
Guardamos los cambios y reiniciamos el demonio para que los cambios surjan efecto:
$ sudo /etc/init.d/postgresql-8.1 restart
Configurar la lista de acceso
La configuración de la lista de acceso permite decirle a PostgreSQL qué método de autentificación usar y establecer relaciones de confianza para ciertas máquinas y redes. Hay que editar el fichero /etc/postgresql/8.1/main/pg_hba.conf:
$ sudo vi /etc/postgresql/8.1/main/pg_hba.conf
Al final del archivo se encuentra una lista de acceso predeterminada, ahora, dependiendo de su necesidad puedes hacer lo siguiente:
- Si necesita que cualquier usuario se conecte por medio de una dirección IP en especifico, agregue al final la siguiente línea:
host all all 192.168.1.4 255.255.255.0 md5
La dirección IP y la SubMascara de Red son ejemplos, cámbielos por datos del usuario que requiera realizar la conexión. |
- Si necesita que cualquier usuario se conecte por medio de cualquier dirección IP, agregue al final la siguiente línea:
host all all 0.0.0.0 0.0.0.0 md5
- Si necesita que un usuario determinado se conecte a una base de datos determinada por medio de una dirección IP en especifico, agregue al final la siguiente línea:
host MyDataBase MyUser 192.168.1.4 255.255.255.0 md5
- Guarda los cambios realizados en el archivo y reinicia el demonio para que los cambios surjan efecto:
$ sudo /etc/init.d/postgresql-8.1 restart
{Nota|Para mayor información de la configuración de la lista de acceso, viste la pagina Web del proyecto de traducción del libro PostgreSQL Práctico, y consulta el capitulo Estructura del Archivo pg_hba.conf.}
Backup
Para hacer una copia de seguridad de una base de datos tiene el siguiente comando:
$ pg_dump -h host -U usuario nombre_bd > nombre_bd.sql
Para hacer una copia de seguridad de todas las bases de datos PostgreSQL de un servidor, usa este escript:
<bash>
- !/bin/bash
- BEGIN CONFIG ##
HOST=localhost USER=usuario PASS=secreto BACKUP_DIR=Backup
- END CONFIG ##
if [ ! -d $BACKUP_DIR ]; then
mkdir -p $BACKUP_DIR
fi
- Backup de MySQL
MYSQL_DBS=$(mysqlshow -h $HOST -u $USER -p$PASS | awk ' (NR > 2) && (/[a-zA-Z0-9]+[ ]+[|]/) && ( $0 !~ /mysql/) { print $2 }');
for DB in $MYSQL_DBS ; do
echo "* Backuping MySQL data from $DB@$HOST..." mysqldump -h $HOST -u $USER -p$PASS $DB > $BACKUP_DIR/mysql_$DB.sql
done </bash>