Instalación de Postgres en Ubuntu 18.04 LTS
Postgres es una de las bases de datos relacionales más populares del mercado. Es open-source y está totalmente soportada por la comunidad, haciéndola una de las candidatas preferidas por los programadores para desarrollar aplicaciones, pues tiene poco que envidiarle a otras bases de datos que cuestan miles de Euros al año en licencias.
Contenidos
Instalación de Postgres 10
La instalación en Ubuntu no puede ser más sencilla. Un simple comando apt install y tendremos la base de datos instalada como servicio, ejecutándose automáticamente cuando arranquemos nuestro sistema, y con el usuario postgresql creado para empezar a trabajar.
sudo apt install postgresql
Operaciones más comunes con la base de datos
Ver el estado en el que está la base de datos
sudo systemctl status postgresql
Poner la base de datos en marcha
sudo systemctl start postgresql
Parar la base de datos
sudo systemctl stop postgresql
Reiniciar el servicio
sudo systemctl restart postgresql
Recargar la configuración
sudo systemctl reload postgresql
Uso básico de psql
Como acceder a la consola psql
Una de las formas más comunes de trabajar con la base de datos PostgreSQL es desde la consola de comandos.
nociones@nociones:~$ sudo su postgres postgres@nociones:/home/nociones$ psql psql (10.2 (Ubuntu 10.2-1)) Type "help" for help. postgres=#
Ver la lista de comandos de ayuda psql
Sencillamente ponemos una barra invertida y un interrogante
postgres=# \?
Nos mostrará la siguiente lista:
General \copyright show PostgreSQL usage and distribution terms \crosstabview [COLUMNS] execute query and display results in crosstab \errverbose show most recent error message at maximum verbosity \g [FILE] or ; execute query (and send results to file or |pipe) \gexec execute query, then execute each value in its result \gset [PREFIX] execute query and store results in psql variables \gx [FILE] as \g, but forces expanded output mode \q quit psql \watch [SEC] execute query every SEC seconds Help \? [commands] show help on backslash commands \? options show help on psql command-line options \? variables show help on special variables \h [NAME] help on syntax of SQL commands, * for all commands Query Buffer \e [FILE] [LINE] edit the query buffer (or file) with external editor \ef [FUNCNAME [LINE]] edit function definition with external editor \ev [VIEWNAME [LINE]] edit view definition with external editor \p show the contents of the query buffer \r reset (clear) the query buffer \s [FILE] display history or save it to file \w FILE write query buffer to file Input/Output \copy ... perform SQL COPY with data stream to the client host \echo [STRING] write string to standard output \i FILE execute commands from file \ir FILE as \i, but relative to location of current script \o [FILE] send all query results to file or |pipe \qecho [STRING] write string to query output stream (see \o) Conditional \if EXPR begin conditional block \elif EXPR alternative within current conditional block \else final alternative within current conditional block \endif end conditional block Informational (options: S = show system objects, + = additional detail) \d[S+] list tables, views, and sequences \d[S+] NAME describe table, view, sequence, or index \da[S] [PATTERN] list aggregates \dA[+] [PATTERN] list access methods \db[+] [PATTERN] list tablespaces \dc[S+] [PATTERN] list conversions \dC[+] [PATTERN] list casts
Ver la lista de comandos de ayuda sql
postgres=# \h
Nos mostrará una lista inmensa con muchos comandos familiares para cualquiera que haya trabajado con una base de datos relacional:
Available help: ABORT ALTER TABLE CREATE FOREIGN TABLE CREATE VIEW DROP SCHEMA PREPARE TRANSACTION ALTER AGGREGATE ALTER TABLESPACE CREATE FUNCTION DEALLOCATE DROP SEQUENCE REASSIGN OWNED ALTER COLLATION ALTER TEXT SEARCH CONFIGURATION CREATE GROUP DECLARE DROP SERVER REFRESH MATERIALIZED VIEW ALTER CONVERSION ALTER TEXT SEARCH DICTIONARY CREATE INDEX DELETE DROP STATISTICS REINDEX ALTER DATABASE ALTER TEXT SEARCH PARSER CREATE LANGUAGE DISCARD DROP SUBSCRIPTION RELEASE SAVEPOINT ALTER DEFAULT PRIVILEGES ALTER TEXT SEARCH TEMPLATE CREATE MATERIALIZED VIEW DO DROP TABLE RESET ALTER DOMAIN ALTER TRIGGER CREATE OPERATOR DROP ACCESS METHOD DROP TABLESPACE REVOKE ALTER EVENT TRIGGER ALTER TYPE CREATE OPERATOR CLASS DROP AGGREGATE DROP TEXT SEARCH CONFIGURATION ROLLBACK ALTER EXTENSION ALTER USER CREATE OPERATOR FAMILY DROP CAST DROP TEXT SEARCH DICTIONARY ROLLBACK PREPARED ALTER FOREIGN DATA WRAPPER ALTER USER MAPPING CREATE POLICY DROP COLLATION DROP TEXT SEARCH PARSER ROLLBACK TO SAVEPOINT ALTER FOREIGN TABLE ALTER VIEW CREATE PUBLICATION DROP CONVERSION DROP TEXT SEARCH TEMPLATE SAVEPOINT ALTER FUNCTION ANALYZE CREATE ROLE DROP DATABASE DROP TRANSFORM SECURITY LABEL ALTER GROUP BEGIN CREATE RULE DROP DOMAIN DROP TRIGGER SELECT ALTER INDEX CHECKPOINT CREATE SCHEMA DROP EVENT TRIGGER DROP TYPE SELECT INTO ALTER LANGUAGE CLOSE CREATE SEQUENCE DROP EXTENSION DROP USER SET ALTER LARGE OBJECT CLUSTER CREATE SERVER DROP FOREIGN DATA WRAPPER DROP USER MAPPING SET CONSTRAINTS ALTER MATERIALIZED VIEW COMMENT CREATE STATISTICS DROP FOREIGN TABLE DROP VIEW SET ROLE ALTER OPERATOR COMMIT CREATE SUBSCRIPTION DROP FUNCTION END SET SESSION AUTHORIZATION ALTER OPERATOR CLASS COMMIT PREPARED CREATE TABLE DROP GROUP EXECUTE SET TRANSACTION ALTER OPERATOR FAMILY COPY CREATE TABLE AS DROP INDEX EXPLAIN SHOW ALTER POLICY CREATE ACCESS METHOD CREATE TABLESPACE DROP LANGUAGE FETCH START TRANSACTION ALTER PUBLICATION CREATE AGGREGATE CREATE TEXT SEARCH CONFIGURATION DROP MATERIALIZED VIEW GRANT TABLE ALTER ROLE CREATE CAST CREATE TEXT SEARCH DICTIONARY DROP OPERATOR IMPORT FOREIGN SCHEMA TRUNCATE ALTER RULE CREATE COLLATION CREATE TEXT SEARCH PARSER DROP OPERATOR CLASS INSERT UNLISTEN ALTER SCHEMA CREATE CONVERSION CREATE TEXT SEARCH TEMPLATE DROP OPERATOR FAMILY LISTEN UPDATE ALTER SEQUENCE CREATE DATABASE CREATE TRANSFORM DROP OWNED LOAD VACUUM ALTER SERVER CREATE DOMAIN CREATE TRIGGER DROP POLICY LOCK VALUES ALTER STATISTICS CREATE EVENT TRIGGER CREATE TYPE DROP PUBLICATION MOVE WITH ALTER SUBSCRIPTION CREATE EXTENSION CREATE USER DROP ROLE NOTIFY ALTER SYSTEM CREATE FOREIGN DATA WRAPPER CREATE USER MAPPING DROP RULE PREPARE
Ver la ayuda sobre un comando
postgres=# \help create database
Nos muestra la ayuda de ese comando con la sintaxis de PostgreSQL
Command: CREATE DATABASE Description: create a new database Syntax: CREATE DATABASE name [ [ WITH ] [ OWNER [=] user_name ] [ TEMPLATE [=] template ] [ ENCODING [=] encoding ] [ LC_COLLATE [=] lc_collate ] [ LC_CTYPE [=] lc_ctype ] [ TABLESPACE [=] tablespace_name ] [ ALLOW_CONNECTIONS [=] allowconn ] [ CONNECTION LIMIT [=] connlimit ] [ IS_TEMPLATE [=] istemplate ] ]
Salir de la interfaz psql
Seguro que has probado con <Ctrl>-<c> y estás a punto de tirar la toalla. Prueba lo siguiente:
postgres=# \q
Ficheros más comunes de Postgres
Te mostramos a continuación la localización de los ficheros más comunes de PostgresSQL en Ubuntu, para que los localices de forma sencilla cuando necesites hacer algún cambio o personalizacion siguiendo un tutorial o la documentación de la base de datos.
Ficheros de configuración
A continuación te mostramos cómo localizar los principales ficheros de nuestra instalación en Postgres. Se muestran las salidas para Ubuntu, pero estos comandos te serán muy útiles si te encuentras en unas instalación de postgres en otra distribución con la que no estés familiarizado.
pg_hba.conf
Este fichero especifica la información de autentificación de hosts (host based authentication), básicamente cómo se va a acceder a tu base de datos y desde donde.
postgres=# show hba_file; hba_file ------------------------------------- /etc/postgresql/10/main/pg_hba.conf
postgresql.conf
Este fichero especifica la configuración principal del servidor
postgres=# show config_file; config_file ----------------------------------------- /etc/postgresql/10/main/postgresql.conf
Ficheros de datos
Este será el directorio que se utilizará para el almacenamiento de datos.
postgres=# show data_directory; data_directory ----------------------------- /var/lib/postgresql/10/main
Fichero de log
El fichero de log se encuentra en el siguiente directorio:
postgres@nociones:/home/nociones$ ls -lha /var/log/postgresql/postgresql-10-main.log -rw-r----- 1 postgres adm 1,7K Mär 9 22:47 /var/log/postgresql/postgresql-10-main.log
Límites de PostgreSQL
Te mostramos algunos de los límites de la base de datos Postgres. Como verás, es muy poco probable que los alcances. Son útiles para realizar comparativas con otras bases de datos y para planificar una aplicación.
Límite | Valor |
---|---|
Tamaño máximo de la base de datos | Ilimitado(!) |
Tamaño máximo de una tabla | 32 TB |
Tamaño máximo de una file | 1.6 TB |
Tamaño máximo de un campo | 1 GB |
Número máximo de filas por tabla | Ilimitado(!) |
Número máximo de columnas por tabla | 250 – 1600 dependiendo del tipo de columnas |
Número máximo de índices por tabla | Ilimitado |
Fin
Y de momento eso es todo, ¿Tienes alguna duda que podamos resolver? ¿Echas de menos alguna información? ¡Te esperamos en los comentarios!
Tengo una mala instalación en Ubuntu 18 (no soy experto y estoy experimentando). La cuestión es que me gustaría limpiar la versión que tengo mal instalada y empezar una nueva. Me podéis ayudar?
SAludos
Izás
@François Jai regroupé MySQL et MariaDB. ;+) Et, vous avez raison : javais oublié PostgreSQL qui se situe à 6%. proofreading services