¡Esta es una revisión vieja del documento!
PostgreSQL
Descripción
PostgreSQL es una base de datos enterprise muy flexible y popular.
Prerequistos
Tener el server instalado. Usualmente es un paquete postgresql-server
Procedimiento
1. Instalar
Ya no hay distribucion que no tenga postgresql. Instale como mejor prefiera
- yum install postgresql-server
- apt-get install postgresql-server
No suele ser productivo hacerlo desde un tar.gz a menos que necesite una compilacion especial
2. Configurar
Crear Usuario
Crear usuario administrador de la base de datos
CREATE USER admin WITH SUPERUSER CREATEDB CREATEROLE PASSWORD 'kuine'
O desde el shell como postgres puede crear el usuario preo no asignarle permisos
createuser -d -s -r -l -W admin
Y el usuario mortal
CREATE USER orfeo_usr WITH PASSWORD 'Eichahcu5P';
Crear Base de Datos
CREATE DATABASE orfeo_odb;
Asigne permisos al usuario
Asignar permisos de administrador al usuario de orfeo sobre la base de datos de orfeo.
GRANT ALL PRIVILEGES ON DATABASE orfeo_odb to orfeo_usr;
Permita Acceso remoto
Una cosa importante es permitir el acceso remoto al servidor SI LO NECESITA!!!! . Esto se hace en un par de sitios
En postgresql.conf ( /etc/postgresql/8.3/main/postgresql.conf) o (/etc/postgresql/9.1/main/postgresql.conf) pongalo a escuchar por todas las direcciones
listen_addresses = '*' #listen_addresses = 'localhost'
EN pg_hba.conf (/var/lib/pgsql/data/pg_hba.conf) o (/etc/postgresql/9.1/main/pg_hba.conf) agregue la lineas de acceso deseada. (no borre las otras)
host all all 192.168.8.0/24 md5
Y listo ..ya teniedo esto puede accederlo remoto
El cambio a md5 toca hacerlo tambien ent 127.0.0.1 porque con “ident” no logramos conectar.
Conectarse remoto por linea de comandos
psql -h 192.168.8.74 -U admin -p 5432 orfeo
o use pgadmin3 o phppgadmin que son bastante bonitos
Otras funcionalidades
1. Asignarle privilegios y contraseña a root
Si nunca lo ha usado necesita asignar un password a root o un administrador
su -c psql postgres
o
sudo -u postgres psql
Cambiar contrasena de postgres
ALTER USER postgres WITH PASSWORD 'root123--';
Trucos
a. Cambiar el dueno de unas tablas
Use la siguiente sentencia:
for tbl in `psql -qAt -c “select tablename from pg_tables where schemaname = 'public';” orfeodb` ; do
echo "psql -c alter table $tbl owner to orfeousr orfeodb" psql -c "alter table $tbl owner to orfeousr" orfeodb
done for tbl in `psql -qAt -c “select sequence_name from information_schema.sequences where sequence_schema = 'public';” orfeodb` ; do
echo "psql -c alter table $tbl owner to orfeousr orfeodb " psql -c "alter table $tbl owner to orfeousr" orfeodb
done for tbl in `psql -qAt -c “select table_name from information_schema.views where table_schema = 'public';” orfeodb` ; do
echo "psql -c alter table $tbl owner to orfeousr orfeodb" psql -c "alter table $tbl owner to orfeousr" orfeodb
done
b. Crear usuario Read/Only
Use la siguiente sentencia:
- https://jamie.curle.io/posts/creating-a-read-only-user-in-postgres/
c. Instalacion en CentOS (toca a mano)
postgresql-setup initdb chmod 777 /tmp chmod +t /tmp
https://www.hostinger.com/tutorials/how-to-install-postgresql-on-centos-7/
c. Instalacion versiones viejas Ubutu
Problemas
1. No me deja conectar desde aplicativo web
Si es un Centos /RedHat seguro es SELINUX. Tiene que darle
setsebool -P httpd_can_network_connect_db on
Y ahi debe funcionar
Ojo que phpPgAdmin sufre de lo mismo. El server debe ser 127.0.0.1 .. ..por socket nolo logra
-
————————- FIN ————————