Instalar Postgresql utilizando brew
Si vas utilizar una base de datos relacional Postgresql en una buena opción y en esta ocasión vamos a instalarlo utilizando Homebrew.
Como breviario cultural homebrew es el manejador de paquetes para OSX.
Instalamos Postgresql
- Como primer paso hay que actualizar brew
1 2
$ brew update $ brew doctor
- Intalamos Postgresql
1
$ brew install postgresql
Listo ya tenemos instalado PostgreSql, y lo verificamos de la siguiente forma.
1 2
$ postgres --version postgres (PostgreSQL) 10.1
- Lanzamos el servicio
1
$ brew services start postgresql
Trabajando con PSQL
PSQL es una terminal interactiva, a partir de aquí vamos hacer algunas operaciones básicas
- Creamos una base de datos
1 2 3 4 5 6
$ psql postgres psql (10.1) Type "help" for help. postgres=# CREATE ROLE userdemo WITH LOGIN PASSWORD 'userdemo'; postgres=# CREATE DATABASE mydb; postgres=# GRANT ALL PRIVILLEGES ON DATABASE mydb TO userdemo
Si no reconoce el comando puedes utilizar la opción siguiente
1
$ /usr/local/Cellar/postgresql/10.1/bin/createdb mydb
- Creamos una tabla
1 2 3 4 5 6
$ psql mydb mydb=# create table tasks( mydb(# id int, mydb(# description varchar(50), mydb(# status int, mydb(# active boolean);
- Insertamos datos a la tabla creada
1 2
mydb=# insert into tasks values (1, 'make a coffe', 2,true); INSERT 0 1
- Consultamos datos
1 2 3 4 5
mydb=# select * from tasks; id | description | status | active ----+--------------+--------+-------- 1 | make a coffe | 2 | t (1 row)
Logs
Para poder ver los logs
1
$ tail -f /usr/local/var/log/postgres.log
Comandos básicos
- Mostrar la tablas \dt
1 2 3 4 5 6
mydb=# \dt List of relations Schema | Name | Type | Owner --------+-------+-------+------------------ public | tasks | table | saidmoraleslemus (1 row)
- Mostrar la estructura de una tabla \d tasks
1 2 3 4 5 6 7 8
mydb=# \d tasks Table "public.tasks" Column | Type | Collation | Nullable | Default -------------+-----------------------+-----------+----------+--------- id | integer | | | description | character varying(50) | | | status | integer | | | active | boolean | | |
Modifcar la configuración
Por default todas las entradas son confiables es decir si entramos a la base de datos no nos pide la contraseña
Si queremos que siempre nos pida la contrasela tenemos que modificar el archivo pg_hba.conf y se debe cambiar el metodo trust por password
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ cat /usr/local/var/postgres/pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all trust
host replication all 127.0.0.1/32 trust
host replication all ::1/128 trust
Quedando de la siguiente forma
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ cat /usr/local/var/postgres/pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all password
# IPv4 local connections:
host all all 127.0.0.1/32 password
# IPv6 local connections:
host all all ::1/128 password
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all password
host replication all 127.0.0.1/32 password
host replication all ::1/128 password
Reiniciamos el server
1
$ brew services restart postgres
Y listo cuando tratamos de entrar nos pide la contraseña
1
2
3
Password for user userdemo:
mydb=>