Cómo instalar y utilizar MySQL 8 en Ubuntu 22.04

MySQL es una plataforma de gestión de bases de datos relacionales, gratuita y de código abierto, desarrollada por Oracle Cloud. Es muy popular debido a su probada fiabilidad, rapidez de procesamiento, facilidad y flexibilidad. Utiliza el Lenguaje de Consulta Estructurado para añadir, acceder y gestionar el contenido de una base de datos. MySQL 8.0 almacena sus metadatos en un probado motor de almacenamiento transaccional llamado InnoDB. Funciona en arquitectura cliente/servidor y puede instalarse en los principales sistemas operativos, incluidos Ubuntu, Windows, CentOS y Debian.

Este tutorial te mostrará cómo instalar MySQL 8 en el servidor Ubuntu 22.04.

Requisitos previos

  • Un servidor que ejecute Ubuntu 22.04.
  • Una contraseña de root configurada en tu servidor.

Cómo empezar

En primer lugar, actualiza todos los paquetes del sistema a la última versión ejecutando el siguiente comando:

apt update -y
apt upgrade -y

Una vez actualizados todos los paquetes, puedes pasar al siguiente paso.

Instalar MySQL 8 Ubuntu 22.04

Por defecto, la última versión del servidor MySQL está incluida en el repositorio por defecto de Ubuntu. Puedes instalarlo ejecutando el siguiente comando:

apt install mysql-server -y

Una vez instalado el servidor MySQL, puedes verificar la versión de MySQL mediante el siguiente comando:

mysql --version

Deberías ver la versión de MySQL en la siguiente salida:

mysql  Ver 8.0.30-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))

Una vez actualizados todos los paquetes, puedes pasar al siguiente paso.

Gestionar el servicio MySQL

Por defecto, el servicio MySQL es gestionado por systemd. Puedes iniciar, detener y verificar fácilmente el estado de MySQL utilizando el comando systemctl.

Para iniciar el servicio MySQL, ejecuta el siguiente comando:

systemctl start mysql

Para detener el servicio MySQL, ejecuta el siguiente comando:

systemctl stop mysql

Puedes verificar el estado del servicio MySQL utilizando el siguiente comando:

systemctl status mysql

Deberías ver la siguiente salida:

? mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-08-21 12:47:24 UTC; 28s ago
    Process: 26157 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
   Main PID: 26185 (mysqld)
     Status: "Server is operational"
      Tasks: 41 (limit: 2242)
     Memory: 359.8M
        CPU: 1.383s
     CGroup: /system.slice/mysql.service
             ??26185 /usr/sbin/mysqld

Aug 21 12:47:23 ubuntu2204 systemd[1]: Starting MySQL Community Server...
Aug 21 12:47:24 ubuntu2204 systemd[1]: Started MySQL Community Server.

Por defecto, MySQL escucha en el puerto 3306. Puedes comprobarlo con el siguiente comando:

ss -antpl | grep -i mysql

Deberías ver el puerto de escucha de MySQL en la siguiente salida:

LISTEN 0      70         127.0.0.1:33060      0.0.0.0:*    users:(("mysqld",pid=26185,fd=21))                       
LISTEN 0      151        127.0.0.1:3306       0.0.0.0:*    users:(("mysqld",pid=26185,fd=23))                       

Una vez actualizados todos los paquetes, puedes pasar al siguiente paso.

Instalación segura de MySQL

A continuación, siempre es una buena idea ejecutar el script mysql_secure_installation para activar algunas funciones de seguridad adicionales, como establecer una nueva contraseña raíz de MySQL, eliminar el usuario anónimo y desactivar el inicio de sesión remoto.

mysql_secure_installation

Responde a todas las preguntas como se indica a continuación:

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: Y

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0
Please set the password for root here.

Se te pedirá que establezcas una nueva contraseña como se muestra a continuación:

New password: 

Re-enter new password: 

Estimated strength of the password: 100 
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Success.

Escribe Y y pulsa la tecla Intro para eliminar el usuario anónimo.

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Success.

Escribe Y y pulsa la tecla Intro para deshabilitar el inicio de sesión remoto de root.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y

Escribe Y y pulsa la tecla Intro para eliminar la base de datos de prueba.

 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
Success.

All done! 

Cuando hayas terminado, puedes pasar al siguiente paso.

Establecer la contraseña raíz de MySQL

Por defecto, la contraseña raíz de MySQL no está establecida. Para establecerla, conéctate al shell de MySQL:

mysql

Una vez conectado a la shell de MySQL, establece la contraseña de MySQL con el siguiente comando:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'securepassword';

A continuación, ejecuta el siguiente comando para guardar los cambios:

mysql> FLUSH PRIVILEGES;

A continuación, sal del intérprete de comandos MySQL con el siguiente comando:

mysql> EXIT;

A continuación, conéctate de nuevo al intérprete de comandos MySQL para verificar la contraseña de root:

mysql -u root -p

Una vez que hayas iniciado sesión, entrarás en el intérprete de comandos MySQL como se muestra a continuación:

Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 8.0.30-0ubuntu0.22.04.1 (Ubuntu)

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

Cuando hayas terminado, puedes pasar al siguiente paso.

Crear una base de datos y un usuario en MySQL

Vamos a crear una base de datos llamada db1 utilizando el siguiente comando:

mysql> CREATE DATABASE db1;

Puedes verificar la base de datos creada utilizando el siguiente comando:

mysql> SHOW databases;

Obtendrás la siguiente salida:

+--------------------+
| Database           |
+--------------------+
| db1                |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

Para cambiar la base de datos a db1, ejecuta el siguiente comando:

mysql> USE db1;

Para crear un usuario llamado dbuser, ejecuta el siguiente comando:

mysql> CREATE USER 'dbuser'@'%' IDENTIFIED BY 'password';

Para conceder todos los privilegios a dbuser en todas las bases de datos, ejecuta el siguiente comando:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'dbuser'@'%' WITH GRANT OPTION;

Para guardar los cambios, ejecuta el siguiente comando:

mysql> FLUSH PRIVILEGES;

Puedes salir del intérprete de comandos de MySQL utilizando el siguiente comando:

mysql> EXIT;

Cuando hayas terminado, puedes pasar al siguiente paso.

Desinstalar el Servidor MySQL

Si quieres eliminar el servidor MySQL de tu servidor, ejecuta el siguiente comando:

apt remove mysql-server --purge

A continuación, elimina todos los paquetes no deseados utilizando el siguiente comando:

apt autoremove

Conclusión

En este post, has aprendido a instalar MySQL 8 en Ubuntu 22.04. También has aprendido a gestionar el servicio MySQL y a crear una base de datos y un usuario. Ahora puedes empezar a crear nuevas bases de datos y usuarios de bases de datos en MySQL.

También te podría gustar...