Instalación de MySQL en un servidor (lista para producción)
MySQLNivel: PrincipianteDuración: 30–45 minInstala desde cero, desde el repositorio oficial y lista para producción, una única instancia de MySQL 8.4 LTS (u 8.0): directorios separados para datos, binlog y logs, un my.cnf calculado según la RAM, la CPU y el tipo de disco, GTID y periodo de retención del binlog, slow query log, SELinux/AppArmor, acceso de root restringido y usuario de aplicación. Al final obtiene una instancia verificada y con su primera copia de seguridad; las guías de replicación, InnoDB Cluster, copias de seguridad y seguridad se basan en esta instalación.
Topología: 1 servidor
Antes de empezar
- El servidor tiene un sistema operativo compatible y actualizado; la zona horaria y NTP (chrony) son correctos.
- La RAM y la CPU coinciden con los valores del formulario (my.cnf se calcula a partir de ellos: buffer pool … MB).
- Hay discos/LV montados (persistentes en fstab) para …, … y …, con sistema de archivos XFS o ext4 y espacio libre suficiente. Los binlogs se conservarán … días; reserve al menos … veces su volumen diario de escritura.
- El hostname … está configurado y se resuelve a su propia IP; hay acceso a la red de aplicaciones (…).
- El servidor puede salir por HTTPS a repo.mysql.com o hay un mirror interno configurado.
- El puerto … (y el puerto de X Protocol …) está libre.
- En el servidor no está instalado MariaDB ni la versión de MySQL del propio sistema operativo (entran en conflicto con el MySQL oficial).
- La contraseña del usuario de la aplicación está preparada… (en la familia RHEL validate_password viene activado: al menos 8 caracteres, mayúsculas/minúsculas, dígitos y caracteres especiales)…. La contraseña se pedirá durante la instalación sin mostrarse en pantalla; no debe contener ' ni \.
- Ha iniciado sesión con permisos de root o sudo; la ventana de mantenimiento y el plan de vuelta atrás (snapshot del servidor) están preparados.
Fases de la guía
- Preparación del sistema operativo — Hostname y actualización del sistema · Configuración del kernel (sysctl) · Aplicar la configuración de sysctl · Desactivar Transparent Huge Pages
- Instalación del software de MySQL — Desactivar el módulo MySQL del sistema operativo · Agregar el repositorio oficial de MySQL · Instalar el software del servidor MySQL · Definir el repositorio APT oficial de MySQL · Instalar el software del servidor MySQL
- Directorios y configuración — Crear los directorios y asignar permisos · Escribir my.cnf · Aumentar el límite de archivos abiertos (systemd) · Recargar la configuración de systemd · Definir las etiquetas de SELinux · Registrar los nuevos directorios en AppArmor …
- Inicio del servicio — Habilitar e iniciar el servicio · Limpiar el antiguo directorio de datos predeterminado
- Acceso de root y seguridad — Buscar la contraseña temporal de root · Pasar root a auth_socket · Establecer la contraseña de root · Guardar los datos de conexión de root (mysql_config_editor) · Limpiar las cuentas predeterminadas y la base de datos de prueba · Componente de política de contraseñas (validate_password)
- Base de datos y usuario de la aplicación — Crear la base de datos y el usuario de la aplicación
- Acceso de red — Abrir el puerto en el firewall
- Verificación — Comprobar que la configuración se ha aplicado · Revisar el error log · Prueba de conexión remota
- Después de la instalación — Hacer la primera copia de seguridad lógica · Conectar la monitorización