LinuxParty
Vamos a hacer una primera configuración, la instalación la habremos realizado desde nuestros fantásticos repositorios de nuestras distribuciones, tal vez haya elegido Windows, entonces tendrá que interpretar las sentencias y los comandos de Linux para adaptarlos a Windows.
Si tenemos Linux, con Ubuntu/Debian/RedHat/Fedora/CentOS, es muy sencillo, bastará escribir el siguiente comando para buscar todo lo relacionado con PostgreSQL:
En Fedora/CentOS/RedHat
yum search postgresql
En Ubuntu y distribiciones basadas en Debian, como Linux Mint, p.ej.
apt-cache search postgresql
En mi caso utilizo Fedora, y tengo los siguientes paquetes:
Puede utilizar:
Fedora/CentOS/RedHat, etc |
Debian/Ubuntu/Linux Mint, etc |
rpm -qa | grep postgresql |
dpkg --list | grep postgresql |
rpm -qa | grep pgsql |
dpkg --list | grep pgsql |
postgresql-libs-9.1.9-1.fc17.x86_64 |
postgresql-libs-9.1.9 |
Revise, e instale lo que crea que les haga falta, con
yum search pgsql
o
apt-cache pgsql
Lo siguiente que hay que hacer, es saber donde PostgreSQL tendrá sus librerías y guarda sus datos, como esta instalación ya la tenemos hecha desde los repositorios podríamos buscar usando find, escribiendo:
cd /
find . -iname "*pgsql*"
De donde tendrá que interpretar la salida, o bien, consultamos los ficheros "master" que tenga instalados, por ejemplo en fedora.
Por ejemplo, escribiremos en Fedora:
[javier@localhost ~]$ rpm -ql postgresql-server
y obtendremos entre otros...
[....]
/var/lib/pgsql
/var/lib/pgsql/.bash_profile
/var/lib/pgsql/backups
/var/lib/pgsql/data
/var/run/postgresql
En Ubuntu, Debian, Linux Mint, deberá utilizar:
dpkg -L nombre-del-paquete
Bravo, ya vemos la configuración, ahora editamos el fichero .bash_profile de tu $HOME, entonces tendrás que editarlo y dejarlo tal que así:
Entramos como el usuario PostgreSQL:
sudo su - postgres
Comprobamos si tiene las variables PGLIB y PGDATA, escribiendo:
set | grep PGLIB
set | grep PGDATA
Si no los tiene, no aparecerá nada, entonces:
Editamos el fichero .bash_profile, .profile, o el que sea:
y creamos el siguiente contenido, si no lo tiene:
[...]
PGLIB=/var/lib/pgsql
PGDATA=/var/lib/pgsql/data
[...]
export PATH PGLIB PGDATA
Copia esos mismos datos y péguelos en la consola, importante, incluido el export.
Cierra la sesión y vuelve a entrar, no hace falta que reinicies el sistema, si no quieres. Prueba
# initdb
Bien, ahora vamos a ver si todo salió como es de esperar, primero vamos a lanzar el servidor de SQL de PostgreSQL, para ello invocamos el script postgres, con el parametro -i y & para que nos devuelva el shell.
# postgres -i &
(Si ya estuviera la aplicación en marcha, porque la hubieramos iniciado con service postgresql start, nos devolverá el error:)
FATAL: el archivo de bloqueo «postmaster.pid» ya existe
HINT: ¿Hay otro postmaster (PID 882) corriendo en el directorio de datos «/var/lib/pgsql/data»?
No pasa nada, sólo nos está diciendo que ya está arrancado, y no puede volverse a arrancar.
Ahora cramos la base de datos de prueba con la siguiente linea de comando:
# createdb midatabase
Finalmente nos conectamos al servidor con el cliente:
# psql
Ahora, es super sencillo utilizar PSQL, mira:
Para pedir ayuda escribe help, después, usa \h
Para listar tus bases de datos usa \l
postgres=# help
Está usando psql, la interfaz de línea de órdenes de PostgreSQL.
Digite: \copyright para ver los términos de distribución
\h para ayuda de órdenes SQL
\? para ayuda de órdenes psql
\g o punto y coma («;») para ejecutar la consulta
\q para salir
postgres=# \l
Listado de base de datos
Nombre | Dueño | Codificación | Collate | Ctype | Privilegios
-------------+----------+--------------+-------------+-------------+-----------------------
midatabase | postgres | UTF8 | es_ES.UTF-8 | es_ES.UTF-8 |
miprimeradb | postgres | UTF8 | es_ES.UTF-8 | es_ES.UTF-8 |
postgres | postgres | UTF8 | es_ES.UTF-8 | es_ES.UTF-8 |
template0 | postgres | UTF8 | es_ES.UTF-8 | es_ES.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | es_ES.UTF-8 | es_ES.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(5 filas)
postgres=#
\d ----> Te muestra las relaciones (tablas, secuencias, etc.) existentes en la base de datos. \d [nombre_tabla] ---> Para ver la descripción (nombre de columnas, tipo de datos, etc.) de una tabla.
\c [nombre_bd] ---> Para conectarte a otra base de datos. SHOW search_path; ---> Para ver la ruta de búsqueda actual. SET search_path TO [nombre_esquema]; ---> Para actualizar la ruta de busqueda. \q -----> Para salir de psql
Una Guía ultra rápida:
Comandos sobre la linea de comandos
Borrar base de datos:
$ dropdb dbname
Crear base de datos
$ createdb dbname
Ejecutar script sobre base de datos
$ psql -f dump.sql dbname
Exportar base de datos:
$pg_dump dbname [-U username] > dump.sql
Exportar solo los datos(no el esquema)base de datos:
$pg_dump -a dbname [-U username] > dump.sql
Exportar base de datos, la salida comienza con un creado de la base de datos y
conexion a dicha base de datos:
$pg_dump -C dbname [-U username] > dump.sql
Exoprtar todas las bases de datos
$pg_dumpall > outfile.sql
Cliente postgresql -> comando psql
PostgreSQL command line prompt
dbname=# \l #muestra listado de las bases de datos existentes
dbname=# \d #listar tablas de base de datos actual
dbname=# \d table-name #muestra descripcion de los campo de la tabla table-name
dbname=# \c dbname # conectarse a base de datos dbname
dbname=# \h # ayuda de comandos SQL
dbname=# \? # ayuda de comandos psql
dbname=#inset, create,..... #ejecutar comandos sql
dbname=# \g o terminar las query con ;
dbname=# \q # salir
Sería recomendable que revisaras la documentación: http://www.postgresql.org/docs/8.2/static/app-psql.html
Puede si quiere utilizar pgadmin3, como cliente gráfico para manejar postgresql.
Búscalo en tus repositorios como:
apt-cache search pgadmin3
yum search pgadmin3
E instalarlo, si te conviene
Para ello deberá editar el fichero de configuración:
/var/lib/pgsql/data/pg_hba.conf (también puede estar en /etc/postgresql)
La línea: (la que está marcada en negrita)
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 ident
# IPv6 local connections:
host all all ::1/128 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres peer
#host replication postgres 127.0.0.1/32 ident
#host replication postgres ::1/128 ident
Por esta otra
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1 255.255.255.255 trust
# IPv6 local connections:
host all all ::1/128 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres peer
#host replication postgres 127.0.0.1/32 ident
#host replication postgres ::1/128 ident
De esta forma, estará lista utilizando el usuario postgres,
Si tiene que cambiar la contraseña al usuario postgres, entre como root y escriba:
passwd postgres
-
Bases de Datos
- Cómo hacer copias de seguridad y restaurar MySQL/MariaDB y PostgreSQL con las herramientas 'Automysqlbackup' y 'Autopostgresqlbackup'
- La última versión de MySQL es decepcionante, dicen algunos expertos en bases de datos
- Cómo instalar MongoDB en AlmaLinux 9 con ejemplos de uso
- Cómo instalar PostgreSQL 16 en distribuciones basadas en RHEL, AlmaLinux, RockyLinux y Fedora
- Cómo instalar PhpMyAdmin con Apache en sistemas RHEL, Alma Linux, Rocky Linux, Centos y Fedora
- Cómo hacer una copia de seguridad y restaurar una base de datos PostgreSQL en Linux
- Cómo instalar phpPgAdmin y PostgreSQL en CentOS, AlmaLinux, RHEL, RockyLinux y similares
- 20 comandos mysqladmin para la administración de bases de datos MYSQL/MariaDB
- Copiar y restaurar copias de seguridad de MySQL / MariaDB para la administración de bases de datos
- Crear Copias de Seguridad (Backups) de MariaDB o MySQL Automáticas con AutoMySQLBackup
- Grafana, software para análisis y supervisión
- Cómo configurar la replicación MariaDB (Maestro-Esclavo) en CentOS / RHEL y Debian
- Arrancar al inicio MySQL / MariaDB con Linux.
- Conocer que IPs están conectados a MySQL haciendo consultas a la base de datos.
- MariaDB, guía práctica para Administradores Linux