Introducción
pgAdmin es un proyecto de código abierto diseñado para administrar PostgreSQL bases de datos. PostgreSQL es uno de los sistemas de gestión de bases de datos más populares del mundo.
La herramienta es fácil de usar para principiantes y profesionales que trabajan con PostgreSQL. Utiliza una base de datos relacional de objetos y proporciona una interfaz web y una versión de escritorio para facilitar la interacción con los objetos de la base de datos.
Preparándose para la instalación
Para un funcionamiento adecuado entre pgAdmin 4 y PostgreSQL, es necesario preparar con antelación:
- Desplegado Ubuntu Servidor 22.04. Un usuario con acceso al comando sudo. Utilidad para configurar la ufw firewall. Te invitamos a utilizar nuestro instrucción;
- Instalado y configurado Nginx as proxy inverso http://unix:/tmp/pgadmin4.sock;
- instalado PostgreSQL, necesita agregar un nuevo usuario, así como base de datos para conectar pgAdmin a nuestra base de datos;
- Ambiente virtual desplegado en Python;
Etapa 1: implementación de pgAdmin y descarga de dependencias
Primero actualizando los índices de los paquetes, usemos la utilidad apt incorporada.
sudo apt update
Descargue las dependencias de libgmp3-dev, una biblioteca aritmética de alta precisión; libpq-dev, una biblioteca que le permite trabajar con el PostgreSQL backend
sudo apt install libgmp3-dev libpq-dev
Cree varios directorios con el fin de almacenar información sobre sesiones conectadas, almacenamiento y archivos de registro:
sudo mkdir -p /var/lib/pgadmin4/sessions
sudo mkdir /var/lib/pgadmin4/storage
sudo mkdir /var/log/pgadmin4
Crear usuario serverspace:
useradd -m serverspace
Luego, una nueva frase de contraseña para el usuario. serverspace se debe establecer:
passwd serverspace
Añádalo al sudo grupo:
usermod -aG sudo serverspace
A continuación, cambie los propietarios del directorio de raíz a serverspace, algunas utilidades no permiten el acceso para ejecutar servicios como root:
sudo chown -R serverspace:serverspace /var/lib/pgadmin4
sudo chown -R serverspace:serverspace /var/log/pgadmin4
Luego vaya a la carpeta creada con el nombre "prueba". En estas instrucciones, los nombres de los directorios se dan de la misma manera que en las instrucciones. Vaya al directorio de prueba creado anteriormente y ejecute el entorno test_env:
cd test/
source test_env/bin/activate
Al ejecutar el entorno virtual test_env, actualice el paquete pip para instalar la biblioteca requerida. En el caso de un pip no actualizado, podemos encontrar algunas dificultades para instalar pgAdmin.
Para actualizar el pip, proceda de la siguiente manera:
python3 -m pip install -U pip
Use un navegador web para descargar la última versión de un archivo con una extensión .whl. ¿Cuál es la extensión del paquete estándar para el Python distribución. Copie el enlace de la utilidad y escriba en la línea de comando:
wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v6.10/pip/pgadmin4-6.10-py3-none-any.whl
Usando pip, configure el paquete descargado:
python -m pip install wheel
Prepararlo:
python -m pip install pgadmin4-6.10-py3-none-any.whl
Descargar Gunicorn en Python WSGI, que se comunicará con Nginx:
python -m pip install gunicorn
El primer paso se ha completado con éxito. Modifique el archivo de configuración, luego podrá conectarse a la base de datos.
Etapa 2: configuración de pgAdmin 4
Debe hacer una copia de seguridad del archivo config.py, que se encuentra en la carpeta del paquete pgAdmin instalado. En este ejemplo, la ruta al archivo:
/prueba/env_prueba/lib/python3.10/paquetes-del-sitio/pgadmin4/
cd /test/test_env/lib/python3.10/site-packages/pgadmin4/
Cambiar el archivo maestro puede provocar la pérdida de datos:
cp config.py config.py.orig
El archivo config.py solo debe editarse si es necesario para evitar dañar los datos y el rendimiento de pgAdmin 4.
Realice ediciones en el archivo config_local.py.
¡Importante! El archivo debe estar ubicado en la dirección: /sitio-paquetes/pgadmin4/
Puede usar la utilidad táctil para crear un archivo, o puede crear y abrir un archivo con vim o nano. Usaremos nano:
nano /test_env/lib/python3.10/site-packages/pgadmin4/config_local.py
Después de abrir, haremos las ediciones:
LOG_FILE = '/var/log/pgadmin4/pgadmin4.log'
SQLITE_PATH = '/var/lib/pgadmin4/pgadmin4.db'
SESSION_DB_PATH = '/var/lib/pgadmin4/sessions'
STORAGE_DIR = '/var/lib/pgadmin4/storage'
AZURE_CREDENTIAL_CACHE_DIR = '/var/lib/pgadmin4/azurecredentialcache'
SERVER_MODE = True
Esta pieza de código hace:
LOG_FILE: ruta al archivo de registro
SQLITE_PATH: Ruta a los datos de usuario en la base de datos SQLite El archivo se almacena en el directorio /var/lib/pgadmin4/, nuestros datos de usuario no se perderán después de la actualización.
SESSION_DB_PATH: ruta a un directorio que contiene información sobre las sesiones conectadas.
STORAGE_DIR: ruta a un directorio que contiene información de almacenamiento y certificado.
SERVER_MODE: el modo de servidor seleccionado es True.
Para salir y guardar, presione ESC, escriba :wq! y presione ENTRAR.
Para iniciar configuraciones desde esta ubicación, inicie pgAdmin con varios comandos.
Configurar una clave pública:
curl -fsS https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo gpg --dearmor -o /usr/share/keyrings/packages-pgadmin-org.gpg
Para continuar, agregue un archivo de configuración. Envía el siguiente comando a la terminal:
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/packages-pgadmin-org.gpg] https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt update'
Instalar pgadmin4:
sudo apt install pgadmin4
Ejecutemos la configuración:
sudo /usr/pgadmin4/bin/setup-web.sh
A continuación, escribiremos nuestros detalles (correo electrónico, frase de contraseña) para el futuro inicio de sesión en la interfaz web de pgAdmin:
pgAdmin ya está disponible en nuestra red.
Etapa 3: implementación de Gunicorn y Nginx
Gunicorn es responsable de ejecutar pgAdmin como una aplicación web. Actualmente es posible conectarse a pgAdmin desde computadoras locales. A Nginx servidor web está configurado para el acceso fuera de nuestra red.
Vaya al directorio raíz, luego vaya a la dirección:
cd /etc/nginx/sites-available/
Realice cambios en el archivo /test_domain.ru:
server {
listen 80; #Listening on port 80 IPv4
listen [::]:80; #In most cases, when starting nginx -t gives an error, is sent to this line, when you get an error, comment out the line
server_name test_domain.ru www.test_domain.ru; #Server name
location / { #Path
proxy_pass http://unix:/tmp/pgadmin4.sock; #reverse proxy
include proxy_params;
}
}
Ejecutemos el Python ambiente virtual. Conecte el proxy inverso usando algunos comandos:
source /test/test_env/bin/activate
gunicorn --bind unix:/tmp/pgadmin4.sock --workers=1 --threads=25 --chdir /root/test/test_env/lib/python3.10/site-packages/pgadmin4 pgAdmin4:app
#Output
[2022-11-04 21:55:37 +0000] [6338] [INFO] Starting gunicorn 20.1.0
[2022-11-04 21:55:37 +0000] [6338] [INFO] Listening at: unix:/tmp/pgadmin4.sock (6338)
[2022-11-04 21:55:37 +0000] [6338] [INFO] Using worker: gthread
[2022-11-04 21:55:37 +0000] [6339] [INFO] Booting worker with pid: 6339
El comando debe ejecutarse desde el test_env virtual space y no debe haber errores relacionados con la biblioteca en la salida.
Etapa 4 - Acceso a pgAdmin 4
En la máquina en nuestra red, inicie un navegador web y en la barra de direcciones especifique la dirección del host donde se implementa pgAdmin http://ip_servidor/pgadmin4.
El ejemplo actual utiliza la dirección http://10.0.0.1/pgadmin4
Al iniciar sesión, especifique el correo electrónico y la contraseña que utilizó para crear la configuración (Finalizar "Paso 2 - Configuración de pgAdmin 4").
Iniciar sesión por clihaciendo clic en el botón Iniciar sesión (ver Pantalla 1)
Si se autorizó con éxito, verá la página de inicio de la interfaz web de pgAdmin (ver Pantalla 2).
Ahora edite el archivo de configuración utilizado para conectarse al PostgreSQL base de datos.
Etapa 5 - PostgreSQL Configuración de usuario
Prensado CTRL + C detendrá el proceso, volviendo así a la consola.
Siguiendo el elemento Proceso de configuración de la Instrucciones. Procedamos a la configuración.
Inicie sesión en la cuenta de administrador "incorporada":
su postgres
psql postgres
Crea un usuario y la propia base de datos usando los comandos:
CREATE ROLE <login> LOGIN PASSWORD '<password>';
CREATE DATABASE <database> WITH OWNER = <login>;
Por ejemplo:
CREATE ROLE serverspace LOGIN PASSWORD 'ububntu';
CREATE DATABASE serverspacedb WITH OWNER = serverspace;
En la terminal de la base de datos, agregue una contraseña para el usuario del espacio del servidor. Al implementar el DBMS, cada usuario debe crear contraseñas complejas y especificar privilegios de usuario:
ALTER USER serverspace PASSWORD 'p@55w0rd';
Salir presionando \q.
Utilice el navegador para acceder a la consola de pgAdmin 4. Agregue un nuevo servidor usando la herramienta Agregar nuevo servidor (vea la pantalla 3).
Ingresemos el nombre (ver Pantalla 4).
Vayamos a la pestaña Conexión, complete los campos Nombre de host / dirección (Nombre de host / dirección) - localhost, Base de datos de mantenimiento (Base de datos de servicio) - serverspacedb, Nombre de usuario (Nombre de usuario) - serverspace, Contraseña (Contraseña): especificado anteriormente en la línea de comando. Después de llenar los campos, cliHaga clic en el botón Guardar (ver Pantalla 5).
¡Considerar! Las ilustraciones muestran el nombre de la base de datos: serverspace.
La corrección de la conexión se comprueba en la pestaña Navegador. Los símbolos (1) aparecerán en la pestaña Servidores, notificando que se ha conectado un nuevo servidor. En forma expandida, obtenemos información sobre Base de datos (Bases de datos), Inicio de sesión / Roles de grupo (Roles / Grupo de inicio de sesión), TablaspaCE (Tablaspaces). La sección Bases de datos almacena dos bases de datos postgres (la base de datos estándar instalada por defecto en PostgreSQL) y serverspacebase de datos creada anteriormente. (Ver Pantalla 6).
Se agregó un servidor con algunos clicks del ratón.
Etapa 6: creación de una tabla mediante la interfaz web.
Para crear una tabla en una base de datos, debe:
- Seleccione Esquemas en el serverspacebase de datos db, luego Tablas;
- Seleccione Crear -> Tabla. (ver Pantalla 7)
Se abrirá la ventana Crear tabla, en la pestaña General. A continuación, ingrese el nombre de la tabla en el campo Nombre. El propietario y los esquemas se completan automáticamente. Si es necesario, puede realizar cambios a su discreción (consulte la pantalla 8).
Vayamos a la pestaña Columnas, agregar una columna es la siguiente, presione el botón "+", especifique Nombre, Tipo de datos y el valor No NULL para que todas las columnas no estén vacías y seleccione Clave principal para especificar la clave principal y click Guardar (Ver Pantalla 9).
Apareció la base de datos configurada y nuestra tabla con columnas. Comencemos a llenar la tabla con SQL. Bien-click en nuestra mesa y cliHaga clic en Scripts -> CREAR Script (ver Pantalla 10).
Agregue un script para completar las columnas, también puede agregar más información separada por comas (ver Pantalla 11).
/*Adding information to a table*/
INSERT INTO public."test_table"(
/*Line names*/
test_col1,
test_col2,
test_col3)
/*Values*/
VALUES
/*Row Information*/
('Test1', 10, 'True'),
('Test2', 20, 'False'),
('Test3', 30, 'True');
Ejecute el script con el botón (▶) y cierre la ventana del editor.
Para ver los cambios realizados en la tabla, proceda de la siguiente manera:
- Derecha-click en la tabla deseada;
- Seleccione Ver/Editar datos;
- Luego seleccione Todas las filas. (ver Pantalla 12)
En la ventana que se abre con los resultados de la consulta completa, los datos completos se almacenan en la sección Salida de datos. (ver Pantalla 13)
El método utilizado se considera uno de los utilizados para crear la tabla y rellenarla.
Sin embargo, el siguiente ejemplo usa solo una consulta SQL:
- Llame al menú contextual en el elemento Tablas;
- Seleccione Herramienta de consulta. (ver Pantalla 14).
Crear una tabla y columnas. Rellene los campos creados con el tipo de datos y la información con los valores "15, 'test_table2', 'True'" (ver Pantalla 15):
/*Create a table called test_table2*/
Create table test_table2 (
/*Table attributes*/
test_table1 int,
test_table2 text,
test_table3 boolean );
/*Script to fill the table*/
insert into test_table2 (
/*Entering data into tables and their attributes*/
test_table1,
test_table2,
test_table3 )
/*Fillable Attribute Values*/
values (15, 'test_table2', 'True');
Al buscar una nueva tabla, no encontraremos la nueva tabla hasta que actualicemos la serverspacebase de datos de la base de datos.
Derecha-click en la base de datos y seleccione Actualizar. (ver Pantalla 16)
Ahora veamos los resultados de nuestra consulta de código. Los datos se completan de acuerdo con la solicitud por escrito (ver Pantalla 17)
Tenemos dos tablas: una que usa una interfaz visual y otra que usa SQL.
Conclusiones
pgAdmin es una herramienta única para trabajar con una base de datos en modo de interfaz web.
Como trabajar:
- Instalar Ubuntu Servidor 22.04;
- Configure ufw para el puerto 80/tcp;
- Instalar Nginx, Python, PostgreSQL;
- Implementar el entorno virtual en Python;
- Instale la biblioteca Gunicorn;
- Configurar un proxy inverso en Nginx;
- Configurar Gunicorn y Nginx trabajar juntos;
- Ejecute el script de instalación del servidor virtual pgAdmin;
- Inicie el servidor;
- Vaya al servidor host local en su navegador;
- Agregar servidor, especificar datos para PostgreSQL;
- Crea la tabla, completa los datos y edita.