Este tutorial explica cómo instalar y asegurar MySQL en Debian 10 desde el repositorio de MySQL Apt.
MySQL, el sistema de gestión de bases de datos relacionales de código abierto más popular del mundo no está disponible en los repositorios predeterminados de Debian. MariaDB es el sistema de base de datos predeterminado en Debian 10.
Tabla de contenidos
Cómo configurar el repositorio MySQL
Para agregar el repositorio APT de MYSQL al sistema, iremos a la página de descarga del repositio y descargaremos el ultimo paquete de lanzamiento utilizando el comando wget de la siguiente forma:
wget http://repo.mysql.com/mysql-apt-config_0.8.13-1_all.deb
Una vez completada la descarga, procederemos a instalar el paquete con privilegios de root.

Vamos a instalar MySQL versión 8.0. seleccionamos OK presionando Tab y presionando Enter (como se muestra en la imagen de arriba).
Si queremos instalar otra modalidad tan solo debemos seleccionarla y pulsar Enter.
Cómo instalar MySQL
Es hora de actualizar la lista de paquetes e instalar el paquete MySQL en el servidor.
sudo apt update
sudo apt install mysql-server
El instalador pedirá que se inserte la contraseña de root para MySQL. Vamos a dejar la contraseña en blanco para configurarla más adelante.

A continuación, se presentará un mensaje que informa sobre la nueva autenticación MySQL 8. Antes de seleccionar el complemento de autenticación predeterminado de MySQL 8, nos aseguramos de que la aplicación lo admita.

Una vez completada la instalación, el servicio MySQL se iniciará automáticamente, lo verificamos escribiendo el siguiente comando:
systemctl status mysql
Salida: ● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2019-11-18 19:16:50 UTC; 1min 42s ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 3709 ExecStartPre=/usr/share/mysql-8.0/mysql-systemd-start pre (code=exited, status=0/SUCCESS) Main PID: 3757 (mysqld) Status: "Server is operational" CGroup: /system.slice/mysql.service └─3757 /usr/sbin/mysqld nov 18 19:16:49 ns3593453 systemd[1]: Starting MySQL Community Server… nov 18 19:16:50 ns3593453 systemd[1]: Started MySQL Community Server.
Cómo securizar MySQL
Llega la fase más importante, la securización del servicio. Para ello vamos a ejecutar mysql_secure_installation, el cual nos permitirá establecer una contraseña de root y mejorar la seguridad de la instalación de MySQL.
mysql_secure_installation
Salida: 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:
VALIDATE PASSWORD PLUGIN solicitará que sea instalado, este complemento se utiliza para probar la solidez de las contraseñas de los usuarios de MySQL. Hay tres niveles de politica de validación de contraseña: baja, media y fuerte. Presionaremos Enter si no deseamos configurar el complemento. En nuestro caso le damos a Enter.
Salida: 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: 2 Please set the password for root here. 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.
Acabamos de configurar la contraseña con nivel medio y un 100% de seguridad en dicho nivel.
Una vez establezcida la contraseña de root, el script también te pedirá que elimine al usuario anónimo, restrinja el acceso del usuario root a la máquina local y elimines la base de datos de prueba. Debes responder “Y” (sí) a todas las preguntas.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y Success. 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. 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 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!
Como conectarse al servidor MySQL
Para interactuar con la base de datos a traves del terminal, vamos a hacer uso del comando mysql instalado como una dependencia el paquete del servidor MySQL.
Si seleccionaste la autenticación predeterminada para inicio de sesión en el servidor MySQL como usuario root basta con ejecutar el siguiente comando:
mysql
De lo contrario, si seleccionaste el método de autenticación heredado para iniciar sesión, escribe:
mysql -u root -p
Se pedirá que ingreses la contraseña de root que establecimos previamente cuando ejecutamos el script mysql_secure_installation. Una vez se ingrese la contraseña, se presentará el shell de Mysql de la siguiente forma

Conclusión
En este tutorial hemos visto cómo instalar y proteger un servidor MySQL en Debian 10. También hemos mostrado como conectarnos a una base de datos MySQL mediante una shell.
Si tu aplicación no tiene requisitos específicos, debes seguir con MariaDB, el sistema de base de datos predeterminado de Debian 10.