{"id":9279,"date":"2026-05-20T11:20:29","date_gmt":"2026-05-20T09:20:29","guid":{"rendered":"https:\/\/www.hostingtg.com\/blog\/?p=9279"},"modified":"2026-05-20T11:20:31","modified_gmt":"2026-05-20T09:20:31","slug":"como-instalar-mysql-en-ubuntu","status":"publish","type":"post","link":"https:\/\/www.hostingtg.com\/blog\/como-instalar-mysql-en-ubuntu\/","title":{"rendered":"C\u00f3mo instalar MySQL en Ubuntu paso a paso"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Gu\u00eda r\u00e1pida para instalar MySQL en Ubuntu<\/h2>\n\n\n\n<p>Instalar MySQL en Ubuntu es bastante directo gracias a APT, el gestor de paquetes del sistema. En la mayor\u00eda de instalaciones recientes de Ubuntu, puedes instalar el servidor MySQL desde los repositorios oficiales con <code>mysql-server<\/code>, comprobar el servicio con <code>systemctl<\/code> y despu\u00e9s ejecutar la configuraci\u00f3n segura inicial. Ubuntu tambi\u00e9n mantiene una gu\u00eda oficial para instalar y configurar MySQL en sus servidores.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Comandos esenciales de instalaci\u00f3n<\/h3>\n\n\n\n<p>Estos son los comandos r\u00e1pidos para instalar MySQL en Ubuntu:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt install mysql-server\nsudo systemctl status mysql\nsudo mysql_secure_installation<\/code><\/pre>\n\n\n\n<p>Con eso ya tienes la base. Ahora bien, en mi caso no considero terminada una instalaci\u00f3n solo porque el paquete se haya instalado. Para m\u00ed, instalar MySQL en Ubuntu implica cuatro cosas: instalar el servidor, comprobar que est\u00e1 funcionando, aplicar una configuraci\u00f3n b\u00e1sica de seguridad y crear un usuario propio para trabajar sin depender siempre de <code>root<\/code>.<\/p>\n\n\n\n<p>MySQL sigue siendo uno de los gestores de bases de datos m\u00e1s utilizados en proyectos web, aplicaciones empresariales, tiendas online y CMS como WordPress. Y Ubuntu, especialmente en <a href=\"https:\/\/www.mysql.com\/downloads\/\" target=\"_blank\" rel=\"noopener\">versiones LTS<\/a>, es una de las bases m\u00e1s c\u00f3modas para administrarlo en servidores porque ofrece estabilidad, actualizaciones y una gesti\u00f3n sencilla mediante APT.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Recuerda que tambien tienes disponible la gu\u00eda de <a href=\"https:\/\/www.hostingtg.com\/blog\/como-instalar-apache-en-ubuntu-paso-a-paso\/\">c\u00f3mo instlar apache en ubuntu<\/a><\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Qu\u00e9 necesitas antes de instalar MySQL en Ubuntu<\/h2>\n\n\n\n<p>Antes de empezar, conviene comprobar que tienes un entorno m\u00ednimo preparado. No hace falta una configuraci\u00f3n compleja, pero s\u00ed necesitas acceso a la terminal y permisos suficientes para instalar paquetes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Versiones de Ubuntu compatibles<\/h3>\n\n\n\n<p>Esta gu\u00eda est\u00e1 pensada para versiones recientes de Ubuntu, especialmente:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ubuntu 20.04 LTS<\/li>\n\n\n\n<li>Ubuntu 22.04 LTS<\/li>\n\n\n\n<li>Ubuntu 24.04 LTS<\/li>\n\n\n\n<li><a href=\"https:\/\/www.hostingtg.com\/blog\/ubuntu-26-04-lts\/\">Ubuntu 26.04 LTS<\/a><\/li>\n\n\n\n<li>Ubuntu Server<\/li>\n\n\n\n<li>Ubuntu Desktop<\/li>\n<\/ul>\n\n\n\n<p>Los comandos principales son muy parecidos entre versiones porque el proceso se basa en APT. La diferencia puede estar en la versi\u00f3n exacta de MySQL que instala cada repositorio y en algunos detalles de autenticaci\u00f3n. Si necesitas una versi\u00f3n concreta de MySQL, Oracle mantiene el repositorio APT oficial de MySQL para Debian y Ubuntu, pensado para instalar y gestionar MySQL Server, cliente y otros componentes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Acceso a terminal, usuario sudo y conexi\u00f3n a internet<\/h3>\n\n\n\n<p>Necesitas:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Una m\u00e1quina con Ubuntu.<\/li>\n\n\n\n<li>Conexi\u00f3n a internet.<\/li>\n\n\n\n<li>Acceso a terminal.<\/li>\n\n\n\n<li>Un usuario con permisos <code>sudo<\/code>.<\/li>\n<\/ul>\n\n\n\n<p>Si est\u00e1s trabajando en un servidor real o VPS, mi recomendaci\u00f3n es usar una versi\u00f3n LTS de Ubuntu y conectarte por SSH con un usuario con permisos <code>sudo<\/code>. Te evitar\u00e1s problemas de permisos, paquetes incompletos y configuraciones a medias.<\/p>\n\n\n\n<p>Puedes comprobar tu versi\u00f3n de Ubuntu con:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>lsb_release -a<\/code><\/pre>\n\n\n\n<p>O tambi\u00e9n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat \/etc\/os-release<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Por qu\u00e9 usar MySQL en Ubuntu<\/h2>\n\n\n\n<p>MySQL es una base de datos relacional de c\u00f3digo abierto, muy extendida y compatible con una enorme cantidad de herramientas. Ubuntu, por su parte, es una de las distribuciones Linux m\u00e1s utilizadas en servidores.<\/p>\n\n\n\n<p>La combinaci\u00f3n funciona muy bien porque MySQL aporta estabilidad, rendimiento y compatibilidad, mientras que Ubuntu facilita la instalaci\u00f3n, actualizaci\u00f3n y administraci\u00f3n del servicio.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ventajas de MySQL para webs, aplicaciones y servidores<\/h3>\n\n\n\n<p>MySQL suele utilizarse en:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Aplicaciones web.<\/li>\n\n\n\n<li>WordPress y otros CMS.<\/li>\n\n\n\n<li>Tiendas online.<\/li>\n\n\n\n<li>APIs.<\/li>\n\n\n\n<li>Aplicaciones empresariales.<\/li>\n\n\n\n<li>Proyectos con PHP, Python, Java o Node.js.<\/li>\n<\/ul>\n\n\n\n<p>Una de las razones por las que suelo recomendar MySQL en Ubuntu es que encaja bien con stacks muy habituales. Si vas a montar una web din\u00e1mica, una aplicaci\u00f3n interna, una tienda online o un proyecto que necesita guardar y consultar datos de forma ordenada, MySQL sigue siendo una opci\u00f3n muy s\u00f3lida.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ventajas de Ubuntu como sistema para bases de datos<\/h3>\n\n\n\n<p>Ubuntu facilita mucho el trabajo porque permite instalar paquetes con APT, gestionar servicios con <code>systemctl<\/code> y mantener el sistema actualizado con comandos sencillos.<\/p>\n\n\n\n<p>En una instalaci\u00f3n normal, no tienes que descargar archivos manualmente ni compilar nada. Puedes instalar el paquete <code>mysql-server<\/code>, activar el servicio y empezar a trabajar desde la terminal.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Actualizar los paquetes de Ubuntu antes de instalar MySQL<\/h2>\n\n\n\n<p>Antes de instalar MySQL, actualiza la lista de paquetes disponibles. Este paso es importante porque Ubuntu necesita consultar los repositorios y saber qu\u00e9 versiones est\u00e1n disponibles.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Actualizar la lista de paquetes con APT<\/h3>\n\n\n\n<p>Ejecuta:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update<\/code><\/pre>\n\n\n\n<p>Este comando no instala nada todav\u00eda. Solo actualiza el \u00edndice local de paquetes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Actualizar paquetes instalados si es necesario<\/h3>\n\n\n\n<p>Puedes actualizar los paquetes ya instalados con:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt upgrade<\/code><\/pre>\n\n\n\n<p>No siempre es obligatorio, pero es recomendable si est\u00e1s preparando un servidor desde cero. En un servidor de producci\u00f3n, revisa antes qu\u00e9 paquetes se van a actualizar.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Instalar MySQL Server en Ubuntu<\/h2>\n\n\n\n<p>Ahora s\u00ed, instala MySQL Server.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Instalar el paquete mysql-server<\/h3>\n\n\n\n<p>Ejecuta:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install mysql-server<\/code><\/pre>\n\n\n\n<p>Cuando Ubuntu te pida confirmaci\u00f3n, acepta con <code>Y<\/code> o <code>S<\/code>, seg\u00fan el idioma de tu sistema.<\/p>\n\n\n\n<p>Este comando instala el servidor MySQL y sus dependencias principales desde los repositorios configurados en tu sistema. La documentaci\u00f3n oficial de MySQL tambi\u00e9n contempla la instalaci\u00f3n mediante repositorio APT en sistemas Debian y Ubuntu cuando quieres usar los paquetes proporcionados directamente por MySQL.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Comprobar la versi\u00f3n instalada de MySQL<\/h3>\n\n\n\n<p>Cuando termine la instalaci\u00f3n, comprueba la versi\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql --version<\/code><\/pre>\n\n\n\n<p>Ver\u00e1s una salida parecida a esta:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql  Ver 8.0.xx for Linux on x86_64<\/code><\/pre>\n\n\n\n<p>La versi\u00f3n exacta puede cambiar seg\u00fan tu versi\u00f3n de Ubuntu, los repositorios activos y las actualizaciones disponibles.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Comprobar que MySQL est\u00e1 funcionando<\/h2>\n\n\n\n<p>Instalar el paquete no es suficiente. Tambi\u00e9n conviene comprobar que el servicio est\u00e1 activo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ver el estado del servicio MySQL<\/h3>\n\n\n\n<p>Ejecuta:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl status mysql<\/code><\/pre>\n\n\n\n<p>Si todo est\u00e1 bien, deber\u00edas ver algo como:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Active: active (running)<\/code><\/pre>\n\n\n\n<p>Ubuntu usa <code>systemd<\/code> para gestionar servicios, as\u00ed que <code>systemctl<\/code> ser\u00e1 tu herramienta habitual para iniciar, detener, reiniciar y revisar MySQL.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Iniciar, detener o reiniciar MySQL en Ubuntu<\/h3>\n\n\n\n<p>Para iniciar MySQL:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl start mysql<\/code><\/pre>\n\n\n\n<p>Para detenerlo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl stop mysql<\/code><\/pre>\n\n\n\n<p>Para reiniciarlo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart mysql<\/code><\/pre>\n\n\n\n<p>Para habilitarlo al arrancar el sistema:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl enable mysql<\/code><\/pre>\n\n\n\n<p>En muchas instalaciones, MySQL queda iniciado autom\u00e1ticamente tras instalarse, pero me gusta comprobarlo siempre. Es una forma r\u00e1pida de detectar si la instalaci\u00f3n ha fallado o si el servicio no ha levantado bien.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Ejecutar la configuraci\u00f3n segura de MySQL<\/h2>\n\n\n\n<p>Despu\u00e9s de instalar MySQL, ejecuta el asistente de seguridad:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mysql_secure_installation<\/code><\/pre>\n\n\n\n<p>Este paso ayuda a endurecer la configuraci\u00f3n inicial. No convierte el servidor en invulnerable, pero s\u00ed elimina configuraciones d\u00e9biles t\u00edpicas de una instalaci\u00f3n nueva.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Qu\u00e9 hace mysql_secure_installation<\/h3>\n\n\n\n<p>El asistente puede preguntarte si quieres:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Activar el componente de validaci\u00f3n de contrase\u00f1as.<\/li>\n\n\n\n<li>Cambiar o definir contrase\u00f1a.<\/li>\n\n\n\n<li>Eliminar usuarios an\u00f3nimos.<\/li>\n\n\n\n<li>Desactivar acceso remoto para <code>root<\/code>.<\/li>\n\n\n\n<li>Eliminar la base de datos de prueba.<\/li>\n\n\n\n<li>Recargar tablas de privilegios.<\/li>\n<\/ul>\n\n\n\n<p>MySQL documenta la instalaci\u00f3n y gesti\u00f3n mediante paquetes APT, pero la configuraci\u00f3n posterior depende del m\u00e9todo de instalaci\u00f3n, versi\u00f3n y pol\u00edtica de seguridad que quieras aplicar.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Recomendaciones al responder las preguntas de seguridad<\/h3>\n\n\n\n<p>Para una instalaci\u00f3n t\u00edpica, puedes responder as\u00ed:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Pregunta<\/th><th>Recomendaci\u00f3n general<\/th><\/tr><\/thead><tbody><tr><td>Validar contrase\u00f1as<\/td><td>S\u00ed, si es un servidor serio<\/td><\/tr><tr><td>Nivel de contrase\u00f1a<\/td><td>Medio suele ser suficiente para empezar<\/td><\/tr><tr><td>Eliminar usuarios an\u00f3nimos<\/td><td>S\u00ed<\/td><\/tr><tr><td>Desactivar login remoto de root<\/td><td>S\u00ed<\/td><\/tr><tr><td>Eliminar base de datos test<\/td><td>S\u00ed<\/td><\/tr><tr><td>Recargar privilegios<\/td><td>S\u00ed<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>La instalaci\u00f3n como tal es r\u00e1pida. Lo que marca la diferencia es este paso: comprobar que MySQL est\u00e1 activo y aplicar seguridad b\u00e1sica antes de usarlo en serio.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Entrar a MySQL desde la terminal de Ubuntu<\/h2>\n\n\n\n<p>Una vez instalado, puedes acceder al monitor de MySQL desde la terminal.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Acceder con sudo mysql<\/h3>\n\n\n\n<p>En Ubuntu, muchas instalaciones permiten entrar as\u00ed:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mysql<\/code><\/pre>\n\n\n\n<p>Esto abre la consola de MySQL como usuario administrativo.<\/p>\n\n\n\n<p>Ver\u00e1s algo parecido a:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql><\/code><\/pre>\n\n\n\n<p>Para salir:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>exit;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Acceder con mysql -u root -p<\/h3>\n\n\n\n<p>Tambi\u00e9n puedes intentar entrar con:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql -u root -p<\/code><\/pre>\n\n\n\n<p>Este comando pide contrase\u00f1a para el usuario <code>root<\/code> de MySQL.<\/p>\n\n\n\n<p>Pero aqu\u00ed aparece una confusi\u00f3n habitual: en algunas instalaciones de Ubuntu, <code>root<\/code> puede autenticarse mediante el socket del sistema, por lo que <code>sudo mysql<\/code> funciona aunque <code>mysql -u root -p<\/code> no funcione como esperabas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Por qu\u00e9 MySQL puede no pedir contrase\u00f1a en Ubuntu<\/h3>\n\n\n\n<p>En Ubuntu, el usuario <code>root<\/code> de MySQL puede estar configurado para autenticarse usando el sistema, no una contrase\u00f1a cl\u00e1sica. Esto no significa necesariamente que MySQL est\u00e9 mal instalado.<\/p>\n\n\n\n<p>Por eso, para trabajar en proyectos reales, prefiero crear un usuario espec\u00edfico. Es m\u00e1s limpio, m\u00e1s seguro y evita depender de <code>root<\/code> para todo.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Crear una base de datos y un usuario en MySQL<\/h2>\n\n\n\n<p>Ahora vamos a dejar MySQL preparado para un uso real.<\/p>\n\n\n\n<p>Entra a MySQL:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mysql<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Crear una base de datos de prueba<\/h3>\n\n\n\n<p>Dentro de MySQL, ejecuta:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE DATABASE proyecto_demo;<\/code><\/pre>\n\n\n\n<p>Puedes ver las bases de datos con:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SHOW DATABASES;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Crear un usuario con contrase\u00f1a<\/h3>\n\n\n\n<p>Crea un usuario nuevo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE USER 'usuario_demo'@'localhost' IDENTIFIED BY 'Contrase\u00f1a_Segura_123!';<\/code><\/pre>\n\n\n\n<p>Cambia <code>usuario_demo<\/code> y <code>Contrase\u00f1a_Segura_123!<\/code> por tus propios datos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Conceder permisos al usuario<\/h3>\n\n\n\n<p>Da permisos sobre la base de datos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>GRANT ALL PRIVILEGES ON proyecto_demo.* TO 'usuario_demo'@'localhost';\nFLUSH PRIVILEGES;<\/code><\/pre>\n\n\n\n<p>Despu\u00e9s puedes probar el acceso:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql -u usuario_demo -p<\/code><\/pre>\n\n\n\n<p>Normalmente instalo MySQL porque despu\u00e9s va a alimentar una aplicaci\u00f3n, una web en WordPress, una tienda online o alg\u00fan proyecto que necesita consultar datos. Por eso me gusta terminar creando una base de datos y un usuario espec\u00edfico desde el principio.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Habilitar acceso remoto a MySQL en Ubuntu<\/h2>\n\n\n\n<p>Por defecto, lo m\u00e1s seguro es usar MySQL solo en local. El acceso remoto debe activarse \u00fanicamente si lo necesitas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cu\u00e1ndo tiene sentido activar el acceso remoto<\/h3>\n\n\n\n<p>Tiene sentido si:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tu aplicaci\u00f3n est\u00e1 en otro servidor.<\/li>\n\n\n\n<li>Tienes una arquitectura separada entre aplicaci\u00f3n y base de datos.<\/li>\n\n\n\n<li>Necesitas conectarte desde una IP concreta.<\/li>\n\n\n\n<li>Vas a administrar la base de datos desde otra m\u00e1quina.<\/li>\n<\/ul>\n\n\n\n<p>No tiene sentido abrir MySQL a internet \u201cpor si acaso\u201d. El puerto 3306 expuesto sin control puede ser un riesgo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Configurar bind-address y puerto 3306<\/h3>\n\n\n\n<p>El archivo habitual de configuraci\u00f3n es:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/mysql\/mysql.conf.d\/mysqld.cnf<\/code><\/pre>\n\n\n\n<p>Busca esta l\u00ednea:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bind-address = 127.0.0.1<\/code><\/pre>\n\n\n\n<p>Para aceptar conexiones externas, podr\u00edas cambiarla por:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bind-address = 0.0.0.0<\/code><\/pre>\n\n\n\n<p>Pero esto permite escuchar en todas las interfaces. En producci\u00f3n, es mejor limitarlo a una IP privada o configurar reglas de firewall estrictas.<\/p>\n\n\n\n<p>Despu\u00e9s reinicia MySQL:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart mysql<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Abrir el firewall UFW solo si es necesario<\/h3>\n\n\n\n<p>Si usas UFW, puedes permitir conexiones al puerto 3306 solo desde una IP concreta:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw allow from IP_DEL_CLIENTE to any port 3306<\/code><\/pre>\n\n\n\n<p>Evita esto salvo que sepas lo que est\u00e1s haciendo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw allow 3306<\/code><\/pre>\n\n\n\n<p>Abrir MySQL a todo internet no es una buena pr\u00e1ctica.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Errores frecuentes al instalar MySQL en Ubuntu<\/h2>\n\n\n\n<p>Esta parte es muy \u00fatil porque muchos problemas aparecen justo despu\u00e9s de copiar los comandos b\u00e1sicos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Unable to locate package mysql-server<\/h3>\n\n\n\n<p>Error:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>E: Unable to locate package mysql-server<\/code><\/pre>\n\n\n\n<p>Soluciones:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update<\/code><\/pre>\n\n\n\n<p>Despu\u00e9s prueba otra vez:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install mysql-server<\/code><\/pre>\n\n\n\n<p>Si sigue fallando, revisa que tus repositorios est\u00e9n activos y que tu versi\u00f3n de Ubuntu tenga soporte.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Access denied for user &#8216;root&#8217;@&#8217;localhost&#8217;<\/h3>\n\n\n\n<p>Error:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ERROR 1045 (28000): Access denied for user 'root'@'localhost'<\/code><\/pre>\n\n\n\n<p>Prueba primero:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mysql<\/code><\/pre>\n\n\n\n<p>Si funciona, probablemente <code>root<\/code> est\u00e1 usando autenticaci\u00f3n mediante socket. La soluci\u00f3n pr\u00e1ctica suele ser crear un usuario nuevo con contrase\u00f1a en vez de forzar el uso de <code>root<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">mysql: command not found<\/h3>\n\n\n\n<p>Error:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql: command not found<\/code><\/pre>\n\n\n\n<p>Puede indicar que el cliente MySQL no est\u00e1 instalado o que la instalaci\u00f3n no termin\u00f3 bien.<\/p>\n\n\n\n<p>Prueba:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install mysql-client<\/code><\/pre>\n\n\n\n<p>O reinstala el servidor:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install mysql-server<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Unit mysql.service could not be found<\/h3>\n\n\n\n<p>Error:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Unit mysql.service could not be found<\/code><\/pre>\n\n\n\n<p>Puede ocurrir si MySQL no est\u00e1 instalado correctamente o si el servicio tiene otro nombre en tu sistema.<\/p>\n\n\n\n<p>Comprueba paquetes instalados:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dpkg -l | grep mysql<\/code><\/pre>\n\n\n\n<p>Y prueba:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install mysql-server<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">ERROR 2002 Can&#8217;t connect to local MySQL server<\/h3>\n\n\n\n<p>Error:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ERROR 2002 (HY000): Can't connect to local MySQL server<\/code><\/pre>\n\n\n\n<p>Comprueba el estado del servicio:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl status mysql<\/code><\/pre>\n\n\n\n<p>Intenta iniciarlo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl start mysql<\/code><\/pre>\n\n\n\n<p>Si falla, revisa los logs:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo journalctl -u mysql<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">C\u00f3mo desinstalar MySQL de Ubuntu si necesitas empezar de cero<\/h2>\n\n\n\n<p>A veces interesa desinstalar MySQL para repetir la instalaci\u00f3n desde cero. Hazlo con cuidado, sobre todo si tienes bases de datos importantes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Desinstalaci\u00f3n b\u00e1sica<\/h3>\n\n\n\n<p>Para eliminar el paquete:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt remove mysql-server<\/code><\/pre>\n\n\n\n<p>Despu\u00e9s puedes limpiar dependencias que ya no se usen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt autoremove<\/code><\/pre>\n\n\n\n<p>La documentaci\u00f3n oficial de MySQL indica que, si se instal\u00f3 mediante el repositorio APT de MySQL, se puede retirar el servidor con <code>apt-get remove mysql-server<\/code> y despu\u00e9s eliminar componentes instalados autom\u00e1ticamente con <code>apt-get autoremove<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Borrar archivos de configuraci\u00f3n y datos con cuidado<\/h3>\n\n\n\n<p>Si quieres eliminar configuraci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt purge mysql-server<\/code><\/pre>\n\n\n\n<p>Y si necesitas borrar datos, revisa antes este directorio:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/var\/lib\/mysql<\/code><\/pre>\n\n\n\n<p>No borres esa carpeta sin copia de seguridad. Ah\u00ed pueden estar tus bases de datos.<\/p>\n\n\n\n<p>Antes de eliminar datos, haz backup:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysqldump -u usuario -p nombre_base_de_datos > backup.sql<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">De 0 a 100 Ubuntu y Mysql<\/h2>\n\n\n\n<p>Instalar MySQL en Ubuntu es sencillo, pero hacerlo bien implica algo m\u00e1s que lanzar <code>apt install<\/code>. Hay que actualizar paquetes, instalar <code>mysql-server<\/code>, comprobar que el servicio est\u00e1 activo, ejecutar <code>mysql_secure_installation<\/code> y crear un usuario propio para trabajar con bases de datos.<\/p>\n\n\n\n<p>En mi caso, sigo viendo MySQL + Ubuntu como una combinaci\u00f3n muy pr\u00e1ctica: MySQL aporta estabilidad, rendimiento y compatibilidad con muchos lenguajes y aplicaciones; Ubuntu aporta una base estable, f\u00e1cil de mantener y c\u00f3moda para administrar desde terminal.<\/p>\n\n\n\n<p>Con unos pocos comandos puedes tener MySQL funcionando, pero la diferencia entre una instalaci\u00f3n r\u00e1pida y una instalaci\u00f3n bien preparada est\u00e1 en los pasos posteriores: seguridad, usuarios, permisos, comprobaciones y soluci\u00f3n de errores.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Dudas de la comunidad<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfQu\u00e9 comando se usa para instalar MySQL en Ubuntu?<\/h3>\n\n\n\n<p>El comando principal es:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install mysql-server<\/code><\/pre>\n\n\n\n<p>Antes conviene ejecutar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfC\u00f3mo saber si MySQL est\u00e1 instalado en Ubuntu?<\/h3>\n\n\n\n<p>Puedes comprobar la versi\u00f3n con:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql --version<\/code><\/pre>\n\n\n\n<p>Y revisar el servicio con:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl status mysql<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfSirve esta gu\u00eda para Ubuntu 20.04, 22.04 y 24.04?<\/h3>\n\n\n\n<p>S\u00ed, los pasos principales sirven para versiones recientes de Ubuntu basadas en APT. Puede cambiar la versi\u00f3n exacta de MySQL instalada o alg\u00fan detalle de autenticaci\u00f3n, pero el flujo general es el mismo: actualizar paquetes, instalar <code>mysql-server<\/code>, comprobar el servicio y configurar seguridad.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfEs obligatorio ejecutar mysql_secure_installation?<\/h3>\n\n\n\n<p>No siempre es obligatorio, pero s\u00ed muy recomendable. Ayuda a eliminar configuraciones inseguras de una instalaci\u00f3n inicial, como usuarios an\u00f3nimos o bases de datos de prueba.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfC\u00f3mo reiniciar MySQL en Ubuntu?<\/h3>\n\n\n\n<p>Usa:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart mysql<\/code><\/pre>\n\n\n\n<p>Para ver el estado despu\u00e9s:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl status mysql<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfConviene usar root para trabajar con MySQL?<\/h3>\n\n\n\n<p>No como h\u00e1bito diario. Lo m\u00e1s recomendable es crear un usuario espec\u00edfico para cada proyecto y darle permisos solo sobre la base de datos que necesita.<\/p>\n\n\n\n<p>Ejemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE USER 'mi_usuario'@'localhost' IDENTIFIED BY 'Contrase\u00f1a_Segura_123!';\nGRANT ALL PRIVILEGES ON mi_base.* TO 'mi_usuario'@'localhost';\nFLUSH PRIVILEGES;<\/code><\/pre>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gu\u00eda r\u00e1pida para instalar MySQL en Ubuntu Instalar MySQL en Ubuntu es bastante directo gracias a APT, el gestor de paquetes del sistema. En la mayor\u00eda de instalaciones recientes de Ubuntu, puedes instalar el servidor MySQL desde los repositorios oficiales con mysql-server, comprobar el servicio con systemctl y despu\u00e9s ejecutar la configuraci\u00f3n segura inicial. Ubuntu [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":9280,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_aifi_custom_prompt":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[952],"tags":[319,779,305,1144,888],"class_list":["post-9279","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-guias","tag-instalar","tag-linux","tag-mysql","tag-servidor-web","tag-ubuntu"],"_links":{"self":[{"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/posts\/9279","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/comments?post=9279"}],"version-history":[{"count":1,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/posts\/9279\/revisions"}],"predecessor-version":[{"id":9281,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/posts\/9279\/revisions\/9281"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/media\/9280"}],"wp:attachment":[{"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/media?parent=9279"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/categories?post=9279"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/tags?post=9279"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}