Instalar MySQL en Ubuntu

Instalación y configuración

Por Enidev911 en February 02, 2022 · Leído hace 5 minutos
Categoria: sql

Ubuntugit

Actualizar el índice de paquetes apt con el siguiente comando:

sudo apt update

Instalar el paquete de MySQL con el comando:

sudo apt install mysql-server

step1

Concluida la instalación, el demonio de MySQL se iniciará automáticamente. Para verificarlo usamos el comando:

sudo systemctl status mysql

step2

Ver en que puerto está abierto

cat /etc/services | grep mysql

En Debian y derivados, el paquete mysql-server incluye el script llamado mysql_secure_installation, el cual permite mejorar la seguridad de la instalación por defecto. Es recomendable correr este script en todas las instalaciones de servidores MySQL para sistemas en producción. En resumen nos permite:

  • Cambiar la contraseña del usuario “root”.
  • Deshabilitar el acceso remoto para el usuario “root”.
  • Eliminar cuentas de usuario anónimas que pueden ingresar sin necesidad de una contraseña.
  • Eliminar la base de datos “test” (si existe), y todo privilegio que permita a cualquier usuario el acceso a bases de datos cuyos nombres comienzan con “test_”.

Utilizar el script para una configuración segura:

sudo mysql_secure_installation

La primera pregunta nos solicitará si queremos validar password para conectarnos al servidor sea seguro, si lo deseamos al momento de crear un nuevo usuario en el sistema MySQL nos validará si el password cumple con las condiciones mínimas de seguridad. Si no queremos esto solamente ingresamos N

step3

Luego de acuerdo a la opción que ingresemos nos solicitará ingresar el password para el usuario root (Ojo: esto no tendrá efecto hasta que cambiemos el método de autenticación al usuario root de auth_socket a otro complemento). Una vez ingresamos nuestro password, nos preguntará si deseamos remover a los usuarios ánonimos que se crean por defecto junto a la instalación de MySQL, lo mejor es removerlos.

step4

Normalmente, a root solo se le debe permitir conectarse desde ‘localhost’. Para así asegurar que no puedan adivinar la password de root desde la red. Así que deshabilitamos el logín remoto.

step5

Luego nos preguntá si queremos eliminar la base de datos de prueba, esto es opcional.

step6

Luego nos pregunta si queremos recargar la tabla de privilegios. Pondremos si (Y).

step7

Ajustes de autenticación y privilegios de usuario

En los sistemas Ubuntu con MySQL 5.7 (y versiones posteriores), el usuario root de MySQL se configura para la autenticación usando el complemento auth_socket de manera predeterminada en lugar de una contraseña. Esto en muchos casos proporciona mayor seguridad y utilidad, pero también puede generar complicaciones cuando deba permitir que un programa externo (como phpMyAdmin) acceda al usuario.

Para usar un password para conectar a MySQL como root, deberemos cambiar el método de autenticación de auth_socket a otro complemento como caching_sha2_password o mysql_native_password. Para hacer esto, abrimos la terminal y nos conectamos con privilegio sudo:

sudo mysql

Para ver el método de autenticación utilizado por las cuentas de usuarios de MySQL ejecutamos la siguiente sentencia dentro de la consola de MySQL:

SELECT user, authentication_string, plugin, host 
FROM mysql.user;

step 8

Para cambiar el método de autenticación de root con una password, utilizaremos el comando ALTER USER para cambiar el complemento de autenticación. Lo podriamos de la siguiente manera:

ALTER USER 'root'@'localhost' 
IDENTIFIED WITH caching_sha2_password BY 'password';

O realizar el cambio en dos pasos:

Cambiamos el complemento

ALTER USER 'root'@'localhost' 
IDENTIFIED WITH mysql_native_password;

Cambiamos el password. (La función user() devuelve al usuario en sessión)

  ALTER USER user() IDENTIFIED BY 'Strong_Password;

Y por último recargamos la tabla de permisos:

FLUSH PRIVILEGES;

Otra cosa que te recomiendo es crear un nuevo usuario administrativo con todos los privilegios y acceso a todas las bases de datos:

GRANT ALL PRIVILEGES ON *.* TO 'admin_user'@'localhost'
IDENTIFIED BY 'very_strong_password';

Para desinstalar MySQL con:

sudo apt-get remove --purge mysql-server mysql-client mysql-common

Si quieres apoyarme te agradecería un simple café 🍵

BuyMeACoffee