Db
This content is not available in your language yet.
8.2 Bases de Datos en Linux: Despliegue y Administración Profesional
Sección titulada «8.2 Bases de Datos en Linux: Despliegue y Administración Profesional»Introducción
Sección titulada «Introducción»Las bases de datos son el núcleo de prácticamente cualquier aplicación moderna. Desde plataformas web hasta sistemas financieros, toda aplicación crítica depende de un sistema de almacenamiento estructurado, consistente y eficiente.
En Linux, los motores más utilizados son MySQL/MariaDB y PostgreSQL, cada uno con características específicas. Como Sysadmin, tu responsabilidad no es solo instalarlos, sino garantizar su seguridad, rendimiento, disponibilidad y mantenibilidad en producción.
Objetivos de aprendizaje
Sección titulada «Objetivos de aprendizaje»Al finalizar este capítulo serás capaz de:
- Comprender las diferencias entre motores de bases de datos.
- Instalar y configurar MariaDB/MySQL y PostgreSQL.
- Gestionar bases de datos y usuarios.
- Realizar copias de seguridad y restauraciones.
- Diagnosticar problemas comunes.
- Aplicar buenas prácticas de seguridad y rendimiento.
Conceptos Teóricos
Sección titulada «Conceptos Teóricos»1. Tipos de Bases de Datos Relacionales
Sección titulada «1. Tipos de Bases de Datos Relacionales»Las bases de datos relacionales (RDBMS) organizan información en tablas.
Ejemplos:
- MySQL / MariaDB
- PostgreSQL
Características:
- SQL como lenguaje estándar.
- Soporte ACID (Atomicidad, Consistencia, Aislamiento, Durabilidad).
2. MySQL vs MariaDB vs PostgreSQL
Sección titulada «2. MySQL vs MariaDB vs PostgreSQL»| Característica | MySQL/MariaDB | PostgreSQL |
|---|---|---|
| Facilidad de uso | Alta | Media |
| Rendimiento web | Excelente | Muy bueno |
| Funcionalidades avanzadas | Media | Alta |
| Extensibilidad | Limitada | Muy alta |
- MariaDB/MySQL → aplicaciones web clásicas
- PostgreSQL → sistemas complejos, analítica, integridad avanzada
3. Arquitectura básica
Sección titulada «3. Arquitectura básica»Componentes principales:
- Servidor (daemon) → gestiona conexiones
- Clientes → interactúan con DB
- Motor de almacenamiento (InnoDB, etc.)
4. Puertos y ubicaciones
Sección titulada «4. Puertos y ubicaciones»- MySQL/MariaDB →
3306 - PostgreSQL →
5432
Archivos:
/etc/mysql//var/lib/mysql/
/etc/postgresql//var/lib/postgresql/5. Seguridad básica
Sección titulada «5. Seguridad básica»- autenticación por usuario
- control de acceso por IP
- cifrado opcional
Laboratorio Práctico
Sección titulada «Laboratorio Práctico»Escenario
Sección titulada «Escenario»Configurar un servidor MariaDB:
- crear base de datos
- crear usuario
- restringir accesos
- validar conexión
Parte 1: Instalación de MariaDB
Sección titulada «Parte 1: Instalación de MariaDB»Paso 1: Instalar
Sección titulada «Paso 1: Instalar»sudo apt updatesudo apt install mariadb-serverPaso 2: Ver estado
Sección titulada «Paso 2: Ver estado»systemctl status mariadbPaso 3: Hardening inicial
Sección titulada «Paso 3: Hardening inicial»sudo mysql_secure_installationConfigura:
- contraseña root
- eliminar usuarios anónimos
- desactivar acceso remoto root
Parte 2: Gestión básica
Sección titulada «Parte 2: Gestión básica»Paso 1: Acceder a la base
Sección titulada «Paso 1: Acceder a la base»sudo mysqlPaso 2: Crear base de datos
Sección titulada «Paso 2: Crear base de datos»CREATE DATABASE app_db;Paso 3: Crear usuario
Sección titulada «Paso 3: Crear usuario»CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'password_seguro';Paso 4: Asignar permisos
Sección titulada «Paso 4: Asignar permisos»GRANT ALL PRIVILEGES ON app_db.* TO 'app_user'@'localhost';FLUSH PRIVILEGES;Paso 5: Salir
Sección titulada «Paso 5: Salir»EXIT;Paso 6: Verificar conexión
Sección titulada «Paso 6: Verificar conexión»mysql -u app_user -p app_dbParte 3: Backup y restauración
Sección titulada «Parte 3: Backup y restauración»Crear backup
Sección titulada «Crear backup»mysqldump -u root -p app_db > backup.sqlRestaurar backup
Sección titulada «Restaurar backup»mysql -u root -p app_db < backup.sqlParte 4: PostgreSQL básico
Sección titulada «Parte 4: PostgreSQL básico»Instalación
Sección titulada «Instalación»sudo apt install postgresqlsudo -u postgres psqlCrear DB y usuario
Sección titulada «Crear DB y usuario»CREATE DATABASE app_db;CREATE USER app_user WITH PASSWORD 'password';GRANT ALL PRIVILEGES ON DATABASE app_db TO app_user;Errores Comunes y Troubleshooting
Sección titulada «Errores Comunes y Troubleshooting»1. No conecta a la base
Sección titulada «1. No conecta a la base»ss -tulnp | grep 3306Verifica que el servicio está activo.
2. Acceso denegado
Sección titulada «2. Acceso denegado»Error típico:
Access denied for userRevisar:
- usuario
- contraseña
- host
3. Servicio no arranca
Sección titulada «3. Servicio no arranca»journalctl -u mariadb4. Base de datos corrupta
Sección titulada «4. Base de datos corrupta»Posibles causas:
- apagado abrupto
- disco lleno
5. Conexiones remotas no funcionan
Sección titulada «5. Conexiones remotas no funcionan»Editar:
/etc/mysql/mariadb.conf.d/50-server.cnfbind-address = 0.0.0.06. Saturación de conexiones
Sección titulada «6. Saturación de conexiones»SHOW STATUS LIKE 'Threads_connected';Buenas Prácticas (Nivel Senior)
Sección titulada «Buenas Prácticas (Nivel Senior)»1. Nunca usar root en aplicaciones
Sección titulada «1. Nunca usar root en aplicaciones»Crear usuarios específicos con permisos mínimos.
2. Uso de backups automáticos
Sección titulada «2. Uso de backups automáticos»mysqldump diario + cron/systemd3. Seguridad
Sección titulada «3. Seguridad»- limitar acceso por IP
- firewall activo
- cifrado SSL si es necesario
4. Monitorización
Sección titulada «4. Monitorización»- uso de CPU
- conexiones
- queries lentas
5. Ajustes de rendimiento
Sección titulada «5. Ajustes de rendimiento»Ejemplo en MariaDB:
innodb_buffer_pool_size=1G6. Logs
Sección titulada «6. Logs»/var/log/mysql/error.log7. Separación de roles
Sección titulada «7. Separación de roles»- servidor web ≠ servidor DB (en producción real)
8. Alta disponibilidad
Sección titulada «8. Alta disponibilidad»- replicación
- clustering
Resumen y Siguiente Paso
Sección titulada «Resumen y Siguiente Paso»Has aprendido a desplegar y gestionar bases de datos en Linux, incluyendo MariaDB y PostgreSQL, cubriendo desde instalación hasta seguridad y backups. Este conocimiento es esencial para cualquier entorno de producción moderno.
El siguiente paso es trabajar con intercambio de datos entre sistemas:
➡️ 8.3 Transferencia de Archivos, donde aprenderás a gestionar servicios como FTP, SFTP y herramientas modernas para mover datos de forma segura y eficiente.
