MySQL es una de las bases de datos de código abierto más populares. Esta destaca por su re­n­di­mie­n­to, fia­bi­li­dad y es­ca­la­bi­li­dad y tiene numerosos ámbitos de apli­ca­ción, desde pequeños sistemas de hosting web hasta grandes apli­ca­cio­nes de empresa. A co­n­ti­nua­ción, te mostramos paso a paso el proceso de in­s­ta­la­ción de MySQL en Ubuntu 20.04. Así tendrás un sistema de gestión de bases de datos fiable.

¿Cuáles son los re­qui­si­tos de MySQL que debe cumplir Ubuntu 20.04?

En términos generales, los re­qui­si­tos de sistema para utilizar MySQL en Ubuntu 20.04 son re­la­ti­va­me­n­te bajos y la mayoría de los sistemas modernos de es­cri­to­rio o servidor deberían ser capaces de cumplir con dichos re­qui­si­tos. Sin embargo, es im­po­r­ta­n­te señalar y tener en cuenta que los re­qui­si­tos pueden variar en función del uso previsto y del tamaño de la base de datos. Si, por ejemplo, se ejecuta una apli­ca­ción más amplia que utiliza grandes bases de datos o consultas complejas, se ne­ce­si­ta­rán mayores re­qui­si­tos de RAM y pro­ce­sa­dor para ga­ra­n­ti­zar un mejor re­n­di­mie­n­to. Tener una gran capacidad de disco duro es ideal para facilitar el cre­ci­mie­n­to a largo plazo y permitir bases de datos adi­cio­na­les.

Para una co­mu­ni­ca­ción fluida entre el servidor MySQL y los usuarios, también hay que comprobar en detalle la co­n­fi­gu­ra­ción de red y la co­n­fi­gu­ra­ción del co­r­ta­fue­gos. Además, el servidor MySQL debe tener una dirección IP estática para evitar problemas de conexión.

En lo que respecta al hardware y software, MySQL exige los si­guie­n­tes re­qui­si­tos mínimos:

  • Pro­ce­sa­dor (CPU): ar­qui­te­c­tu­ra x86-64, mín. 1 GHz (Dual-Core)
  • Memoria (RAM): mín. 1 GB
  • Sistema operativo: Ubuntu 20.04, usuario sudo con derechos root
  • Firewall: puerto 3306 de MySQL abierto
  • Espacio en disco duro: mín. 500 MB
  • Conexión a Internet: para descargar paquetes y co­ne­c­tar­se al servidor MySQL
Se­r­vi­do­res dedicados
Re­n­di­mie­n­to e in­no­va­ción
  • Pro­ce­sa­do­res de última ge­ne­ra­ción
  • Hardware dedicado de alto re­n­di­mie­n­to
  • Centros de datos con ce­r­ti­fi­ca­ción ISO

In­s­ta­la­ción de MySQL en Ubuntu 20.04: in­s­tru­c­cio­nes paso a paso

Para instalar MySQL en Ubuntu 20.04, puedes utilizar el sistema de gestión de paquetes APT (Advanced Package Tool). Después de finalizar el proceso de in­s­ta­la­ción, debes instalar y co­n­fi­gu­rar MySQL antes de uti­li­zar­lo de forma pro­du­c­ti­va. Para ello, debes es­ta­ble­cer la co­n­tra­se­ña de ad­mi­ni­s­tra­dor (root) y el acceso para usuarios externos, entre otros. En nuestra guía, te mostramos todos los pasos que debes hacer durante el proceso de in­s­ta­la­ción.

Paso 1. Ac­tua­li­zar la lista de paquetes

En primer lugar, se re­co­mie­n­da ac­tua­li­zar la lista de paquetes. Para ello, ejecuta el siguiente comando:

$ sudo apt update
bash

Paso 2. Instalar servidor MySQL

Ahora instala el paquete del servidor MySQL con APT:

$ sudo apt install mysql-server
bash

Para comprobar el fu­n­cio­na­mie­n­to del servidor, puedes iniciarlo ma­nua­l­me­n­te con el comando systemctl:

$ sudo systemctl start mysql.service
bash

Paso 3. Co­n­fi­gu­rar MySQL

Después de instalar MySQL, hay que tener en cuenta que aún no cumple con las normas de seguridad re­co­me­n­da­das. Para so­lu­cio­nar­lo, MySQL pro­po­r­cio­na un script que cambia el modo de co­n­fi­gu­ra­ción para proteger el servidor. De esta manera, se encarga de es­ta­ble­cer la co­n­tra­se­ña de ad­mi­ni­s­tra­ción (root), eliminar usuarios anónimos y re­s­tri­n­gir el acceso remoto, por ejemplo.

Sin embargo, para ejecutar el script co­rre­c­ta­me­n­te, hay que tomar ciertas pre­cau­cio­nes, pues la apli­ca­ción quiere cambiar la co­n­tra­se­ña de la cuenta root, que está des­ha­bi­li­ta­da por defecto en Ubuntu. Si quieres evitar errores, ajusta el método de au­te­n­ti­ca­ción del usuario root.

Inicia el símbolo del sistema de MySQL:

$ sudo mysql
bash

Utiliza la sentencia ALTER USER para es­ta­ble­cer una co­n­tra­se­ña de ad­mi­ni­s­tra­ción (root):

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
bash

Cierra el símbolo del sistema de MySQL:

mysql> exit
bash

Ejecuta el script de seguridad:

$ sudo mysql_secure_installation
bash

Para au­te­n­ti­car­se como usuario root, introduce el siguiente comando:

$ mysql -u root -p
bash

Una vez fi­na­li­za­do el script, puedes volver a cambiar el método de au­te­n­ti­ca­ción que está di­s­po­ni­ble por defecto:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;
bash

Así podrás co­ne­c­tar­te de nuevo con el comando sudo mysql.

Paso 4. Crear usuario MySQL

Al instalar MySQL se crea un usuario root que dispone de todos los pri­vi­le­gios para el servidor MySQL. Este también tiene control total sobre cualquier base de datos, tablas y usuarios. Para mejorar el nivel de seguridad, te re­co­me­n­da­mos crear un usuario con derechos re­s­tri­n­gi­dos.

Para ello, accede al símbolo del sistema de MySQL:

$ sudo mysql
bash

Ahora crea un nuevo usuario para MySQL:

mysql> CREATE USER 'username'@'host' IDENTIFIED WITH authentication_plugin BY 'password';
bash

En “nombre de usuario” y “host”, introduce tu nombre de usuario y el nombre de tu host re­s­pe­c­ti­va­me­n­te. Si ejecutas Ubuntu de forma local, escribe localhost. La expresión “WITH au­the­n­ti­ca­tion_plugin” es opcional. El plugin “auth_socket” tiene un alto nivel de seguridad y no requiere una co­n­tra­se­ña para iniciar sesión.

En caso de que no se es­pe­ci­fi­que nada más, MySQL utiliza el plugin “caching_sha2_password” para la au­te­n­ti­ca­ción. Sin embargo, hay algunas versiones de PHP con las que no es co­m­pa­ti­ble. En su lugar, también puedes utilizar el plugin “mysql_native_password”, que es más antiguo, pero ya ha sido probado:

mysql> CREATE USER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'password';
bash

También puedes utilizar la función “ALTER” para un usuario existente:

mysql> ALTER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'password';
bash

Paso 5. Ad­mi­ni­s­trar derechos

Determina los derechos del nuevo usuario. La sintaxis general es la siguiente:

mysql> GRANT PRIVILEGE ON database.table TO 'username'@'host';
bash

La se­pa­ra­ción de múltiples pri­vi­le­gios se hace con una coma. Para aplicar los pri­vi­le­gios de forma global, in­te­r­ca­m­bia “database.table” con un asterisco (*).

En el siguiente ejemplo, le pasamos a un usuario los derechos para crear (CREATE), modificar (ALTER), eliminar (DROP) e insertar (INSERT), se­le­c­cio­nar (SELECT), ac­tua­li­zar (UPDATE) y eliminar (DELETE) datos en una tabla.

mysql> GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT on *.* TO 'user'@'host' WITH GRANT OPTION;
bash

Mediante “WITH GRANT OPTION”, el usuario también puede traspasar sus derechos a otras personas.

A co­n­ti­nua­ción, vacía la caché con “FLUSH PRI­VI­LE­GES”:

mysql> FLUSH PRIVILEGES;
bash

Ahorra cierra el símbolo del sistema de MySQL:

mysql> exit
bash

Inicia sesión con tu nuevo nombre de usuario:

$ mysql -u username -p
bash

Paso 6. Comprobar el fu­n­cio­na­mie­n­to de MySQL

Después de finalizar todos los pasos an­te­rio­res, comprueba si MySQL se ejecuta co­rre­c­ta­me­n­te. Utiliza, por ejemplo, el gestor del sistema Systemd:

$ systemctl status mysql.service
bash

Como al­te­r­na­ti­va, puedes co­ne­c­tar­te a la base de datos MySQL. El siguiente comando te lleva al inicio de sesión en MySQL y te muestra la versión del servidor:

$ sudo mysqladmin -p -u username version
bash
Ir al menú principal