MySQL en Ubuntu: instala y limita el acceso
Para instalar MySQL en Ubuntu puedes utilizar un repositorio mantenido compatible con tu versión. Después debes comprobar el servicio y crear cuentas para cada aplicación. Instalar el paquete no define por sí solo un diseño de acceso seguro.
Esta guía parte de una máquina nueva de laboratorio. Si ya existe otra base, conserva copia y revisa conflictos antes de cambiar paquetes o repositorios.
Comprueba e instala
cat /etc/os-release
apt-cache policy mysql-server
sudo apt update
sudo apt install mysql-server
sudo systemctl status mysql --no-pager
sudo mysql -e "SELECT VERSION();"
Los paquetes y la autenticación administrativa dependen del repositorio y versión. No asumas que root siempre necesita una contraseña o que siempre utiliza el mismo plugin.
Revisa la configuración inicial
Consulta el procedimiento de endurecimiento de la versión instalada. Una utilidad como mysql_secure_installation puede ayudar a revisar opciones, pero sus preguntas cambian y no reemplaza entender autenticación y acceso.
Mantén la administración local cuando cubra tus necesidades. No cambies root a acceso remoto solo para facilitar la conexión de una aplicación.
Crea base y cuenta de aplicación
Desde un cliente administrativo:
CREATE DATABASE demo CHARACTER SET utf8mb4;
CREATE USER 'app'@'localhost' IDENTIFIED BY 'REEMPLAZA_CON_UNA_CLAVE_UNICA';
GRANT SELECT, INSERT, UPDATE, DELETE ON demo.* TO 'app'@'localhost';
SHOW GRANTS FOR 'app'@'localhost';
La contraseña es un marcador que debes reemplazar. Si la aplicación necesita crear o modificar tablas, separa sus permisos de migración cuando el diseño lo permita. Dar acceso global a todo el servidor no debe ser el paso automático.
Prueba con la cuenta limitada y confirma que las operaciones permitidas funcionan y las no autorizadas se rechazan.
Distingue shell y SQL
systemctl y mysqldump se ejecutan en una terminal del sistema. CREATE USER y SELECT se ejecutan en el cliente SQL. Mezclar ambos contextos produce errores que no se corrigen aumentando permisos.
Utiliza -p sin incluir una contraseña real después de la opción para que el cliente la solicite. Evita dejar secretos en historial o scripts compartidos.
Acceso remoto solo cuando esté justificado
Si aplicación y base viven en el mismo host, normalmente no necesitas abrir 3306 a internet. Para otro equipo, usa red privada o acceso controlado, TLS cuando corresponda y reglas por origen.
Cambiar bind-address a 0.0.0.0, abrir 3306 globalmente y crear una cuenta con host % acumula exposición. No presentes ese conjunto como configuración básica necesaria.
Comprueba la interfaz real de escucha y las reglas efectivas. Un firewall del proveedor no sustituye revisar quién puede usar las cuentas de la base.
Backup y operaciones destructivas
Antes de alterar tablas o eliminar una base, prepara una copia y comprueba su restauración en otro entorno. mysqldump necesita permisos y opciones adecuados al tipo de datos.
DROP DATABASE elimina datos: no lo incluyas en una lista de administración rutinaria sin identificar el objetivo y el respaldo. Una confirmación visual del nombre puede evitar una pérdida grave.
Si una conexión falla
Comprueba servicio, host, puerto, usuario y método de autenticación por separado. “Acceso denegado” y “no se puede conectar” no describen el mismo problema.
Preguntas frecuentes
¿Debo ejecutar FLUSH PRIVILEGES después de cada GRANT?
Las instrucciones de gestión de cuentas aplican sus cambios mediante sus mecanismos. No conviertas FLUSH PRIVILEGES en un ritual ni edites tablas de permisos directamente sin una razón documentada.
¿Por qué root funciona con sudo mysql?
La distribución puede usar autenticación local asociada al sistema. Revisa su configuración antes de cambiarla para imitar un tutorial.
¿Puedo usar una sola cuenta para todas las webs?
Es preferible separar cuentas y bases con permisos ajustados. Así limitas el alcance de un error o compromiso de una aplicación.
En pocas palabras
Una instalación útil de MySQL necesita cuentas, permisos y una red acordes a la aplicación. El acceso remoto debe diseñarse expresamente y no abrirse globalmente como ajuste predeterminado.
Conclusión
Prueba la cuenta de aplicación, conserva un respaldo restaurable y documenta la versión instalada. Antes de permitir acceso remoto, verifica que realmente lo necesitas y limita origen y permisos.
Para continuar, revisa Cómo instalar Ubuntu desde una USB: paso a paso y Cómo instalar Docker en Ubuntu 24.04: guía práctica paso a paso.
