Cómo instalar MySQL en Ubuntu 20.04 [Guía de inicio rápido]

Introducción
MySQL es un sistema de gestión de bases de datos de código abierto, que se suele instalar como parte de la popular pila LAMP (Linux, Apache, MySQL, PHP/Python/Perl). Implementa el modelo relacional y utiliza el lenguaje de consulta estructurado (más conocido como SQL) para gestionar sus datos.
Este tutorial de inicio rápido explicará cómo instalar MySQL versión 8.0 en un servidor Ubuntu 20.04.
Prerrequisitos
Para seguir este tutorial, necesitarás:
- Un servidor Ubuntu 20.04 con un usuario administrativo que no sea root y un firewall configurado con UFW. Para configurarlo, siga nuestra guía de configuración inicial de servidores para Ubuntu 20.04 .
Paso 1: Instalación de MySQL
Para instalar MySQL, primero actualice el índice de paquetes de su servidor si no lo ha hecho recientemente:
- sudo apt update
Luego instala el mysql-server
paquete:
- sudo apt install mysql-server
Asegúrese de que MySQL se esté ejecutando:
- sudo systemctl start mysql.service
Paso 2: Configuración de MySQL
Ejecute el script de seguridad incluido de MySQL con sudo
:
- sudo mysql_secure_installation
Esto lo llevará a través de una serie de indicaciones donde puede realizar algunos cambios en las opciones de seguridad de su instalación MySQL. La primera indicación le preguntará si desea configurar el complemento Validar contraseña, que se puede utilizar para probar la seguridad de su contraseña MySQL.
Si elige configurar el complemento Validar contraseña, el script le pedirá que elija un nivel de validación de contraseña, siendo el más débil 0
y el más fuerte 2
:
OutputSecuring the MySQL server deployment.Connecting to MySQL using a blank password.VALIDATE PASSWORD COMPONENT can be used to test passwordsand improve security. It checks the strength of passwordand allows the users to set only those passwords which aresecure enough. Would you like to setup VALIDATE PASSWORD component?Press y|Y for Yes, any other key for No: YThere are three levels of password validation policy:LOW Length = 8MEDIUM Length = 8, numeric, mixed case, and special charactersSTRONG Length = 8, numeric, mixed case, special characters and dictionary filePlease enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
El siguiente mensaje será ingresar y confirmar una contraseña para el usuario root de MySQL :
OutputPlease set the password for root here.New password: Re-enter new password:
El script te preguntará si quieres continuar con la contraseña que acabas de introducir o si quieres introducir una nueva. Si estás conforme con tu contraseña, pulsa Intro Y
para continuar con el script:
OutputEstimated 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
Desde allí, puedes presionar Y
y luego ENTER
aceptar los valores predeterminados para todas las preguntas posteriores.
Paso 3: creación de un usuario MySQL dedicado y concesión de privilegios
Tras la instalación, MySQL crea una cuenta de usuario root con privilegios que puede utilizar para administrar su base de datos, aunque es mejor evitar usar esta cuenta fuera de las funciones administrativas. Este paso describe cómo utilizar el usuario root de MySQL para crear una nueva cuenta de usuario y otorgarle privilegios.
Conéctese a la base de datos como usuario raíz de MySQL:
- sudo mysql
Nota: Si instaló MySQL con otro tutorial y habilitó la autenticación de contraseña para root , necesitará usar el siguiente comando para acceder al shell de MySQL:
- mysql -u root -p
Una vez que tenga acceso al indicador de MySQL, puede crear un nuevo usuario con una CREATE USER
declaración. Estas siguen esta sintaxis general:
- CREATE USER 'username'@'host' IDENTIFIED WITH authentication_plugin BY 'password';
Tiene varias opciones a la hora de elegir el complemento de autenticación de sus usuarios. El auth_socket
complemento mencionado anteriormente puede resultar práctico, ya que proporciona una seguridad sólida sin exigir a los usuarios válidos que introduzcan una contraseña para acceder a la base de datos. Pero también evita las conexiones remotas, lo que puede complicar las cosas cuando los programas externos necesitan interactuar con MySQL.
Como alternativa, puede omitir por completo la parte de la sintaxis para que el usuario se autentique con el complemento predeterminado de MySQL, . El siguiente comando crea un usuario que se autentica con . Asegúrese de cambiar a su nombre de usuario preferido y a una contraseña segura de su elección:WITH authentication plugin
caching_sha2_password
caching_sha2_password
sammy
password
- CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';
Nota : Existe un problema conocido con algunas versiones de PHP que causa problemas con caching_sha2_password
. Si planea usar esta base de datos con una aplicación PHP (phpMyAdmin, por ejemplo), es posible que desee crear un usuario que se autentique con el mysql_native_password
complemento anterior, aunque aún seguro:
- CREATE USER 'sammy'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Si no está seguro, siempre puede crear un usuario que se autentique con caching_sha2_plugin
y luego ALTER
hacerlo más tarde con este comando:
- ALTER USER 'sammy'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Después de crear su nuevo usuario, puede otorgarle los privilegios adecuados.
Para ilustrarlo, el siguiente comando otorga a un usuario privilegios globales sobre CREATE
, ALTER
, y DROP
bases de datos, tablas y usuarios, así como el poder de INSERT
, UPDATE
y DELETE
datos de cualquier tabla en el servidor. También otorga al usuario la capacidad de consultar datos con SELECT
. Ejecute esta GRANT
declaración, reemplazando sammy
con su propio nombre de usuario MySQL, para otorgar estos privilegios a su usuario:
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT on *.* TO 'sammy'@'localhost' WITH GRANT OPTION;
Advertencia : algunos usuarios pueden querer otorgar a su usuario MySQL el ALL PRIVILEGES
privilegio que les proporcionará amplios privilegios de superusuario similares a los privilegios del usuario root , de la siguiente manera:
- GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'localhost' WITH GRANT OPTION;
No se deben conceder privilegios tan amplios a la ligera , ya que cualquiera con acceso a este usuario MySQL tendrá control total sobre todas las bases de datos del servidor.
A continuación, es una buena práctica ejecutar el FLUSH PRIVILEGES
comando:
- FLUSH PRIVILEGES;
Luego puedes salir del cliente MySQL:
- exit
En el futuro, para iniciar sesión como su nuevo usuario MySQL, deberá utilizar un comando como el siguiente:
- mysql -u sammy -p
La -p
bandera hará que el cliente MySQL le solicite la contraseña de su usuario MySQL para poder autenticarse.
Conclusión
Ahora tiene una configuración básica de MySQL instalada en su servidor. A continuación, se muestran algunos ejemplos de los pasos que puede seguir:
- Configurar una pila LAMP o una pila LEMP
- Practica la ejecución de consultas con SQL
- Administra tu instalación de MySQL con phpMyAdmin
Deja una respuesta