Instalación de MySQL
MySQL es un sistema de administración de bases de datos de código abierto. Implementa el modelo relacional y utiliza el Structured Query Language (más conocido como SQL) para administrar los datos.
Instalar MySQL
Para realizar la instalación es recomendable que actualice el índice de paquetes en su servidor si no lo ha hecho recientemente.
- sudo apt update
Luego instalamos el servidor mysql
- sudo apt install mysql-server
Configurar MySQL
Podemos realizar la configuración de seguridad para la validación de la contraseña del usuario root ejecutando el siguiente comando
- sudo mysql_secure_installation
Al ejecutar el comando nos da una serie de pasos a seguir para la configuración de seguridad. Luego de realizar esta configuración, debemos realizar una más para así poder conectarnos a MySQL con nuestro usuario root ya que por defecto viene con una configuración auth_socket que proporciona aun más seguridad que una contraseña, pero nos puede generar complicaciones para la conexión de aplicaciones externas.
Puede cambiar el método auth_socket
por otros como, caching_sha2_password
o mysql_native_password
. Para hacer esto, vamos a nuestra terminal y ejecutamos:
- sudo mysql
A continuación, compruebe con el siguiente comando el método de autenticación utilizado por una de sus cuentas de usuario de MySQL:
- SELECT user,authentication_string,plugin,host FROM mysql.user;
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| debian-sys-maint | $A$005$lS|M#3K #XslZ.xXUq.crEqTjMvhgOIX7B/zki5DeLA3JB9nh0KwENtwQ4 | caching_sha2_password | localhost |
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| root | | auth_socket | localhost |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
En este ejemplo, puede ver que, en efecto, el usuario root se autentica utilizando el complemento de auth_socket
. Para configurar la cuenta root para autenticar con una contraseña, ejecute una instrucción ALTER USER
para cambiar qué complemento de autenticación utiliza y establecer una nueva contraseña.
Nota: La instrucción ALTER USER
previa establecer el root user de MySQL para autenticar con el complemento caching_sha2_password
. Según la documentación oficial de MySQL, caching_sha2_password
es el complemento de autenticación preferido por MySQL, ya que proporciona un cifrado de contraseña más seguro que el anterior, aunque aún usado ampliamente mysql_native_password
.
Para este caso usaremos el método mysql_native_password. Asegúrate de cambiar 'password' por una contraseña segura y la cual tu recuerdes.
- ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
A continuación, ejecute FLUSH PRIVILEGES
para indicar al servidor que vuelva a cargar la tabla de permisos y aplique sus nuevos cambios:
- FLUSH PRIVILEGES;
Compruebe de nuevo los métodos de autenticación empleados por cada uno de sus usuarios para confirmar que root deje de realizarla usando el complemento de auth_socket
:
- SELECT user,authentication_string,plugin,host FROM mysql.user;
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| debian-sys-maint | $A$005$lS|M#3K #XslZ.xXUq.crEqTjMvhgOIX7B/zki5DeLA3JB9nh0KwENtwQ4 | caching_sha2_password | localhost |
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| root | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_navite_password | localhost |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
Podemos ver que el usuario root de MySQL ahora autentica usando mysql_native_password. Una vez que confirme esto en su propio servidor, podrá cerrar el shell de MySQL:
- exit
Nota: Si tiene la autenticación por contraseña habilitada para root, como se ha descrito anteriormente, deberá usar un comando diferente para acceder al shell de MySQL. A través de lo siguiente, se ejecutará su cliente de MySQL con privilegios de usuario regulares y solo obtendrá privilegios de administrador dentro de la base de datos mediante la autenticación:
- mysql -u root -p
A partir de ahí, cree un usuario nuevo y asigne una contraseña segura:
- CREATE USER 'techskull'@'localhost' IDENTIFIED BY 'password';
Luego, conceda a su nuevo usuario los privilegios apropiados.
Tenga en cuenta que en este momento no necesita ejecutar el comando FLUSH PRIVILEGES
de nuevo. Este comando solo es necesario cuando modifica las tablas de concesión usando instrucciones como INSERT
, UPDATE
o DELETE
. Debido a que creó un nuevo usuario, en vez de modificar uno existente, FLUSH PRIVILEGES
no es necesario aquí.
Después de esto, cierre el shell de MySQL:
- exit
Finalmente para verificar el funcionamiento ejecutamos
- systemctl status mysql.service
Visualizará un resultado similar al siguiente:
Output● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-04-21 12:56:48 UTC; 6min ago
Main PID: 10382 (mysqld)
Status: "Server is operational"
Tasks: 39 (limit: 1137)
Memory: 370.0M
CGroup: /system.slice/mysql.service
└─10382 /usr/sbin/mysqld
En caso de que MySQL no se encuentre activa puede hacerlo con el siguiente comando:
systemctl start mysql
.service
Como comprobación adicional, puede intentar establecer conexión con la base de datos usando la herramienta mysqladmin
, que es un cliente que le permite ejecutar comandos administrativos. Por ejemplo, este comando dice conectar a MySQL como root (-u root
), solicitud de contraseña (-p
), y devolver la versión.
- sudo mysqladmin -p -u root version
Veremos en pantalla algo similar a esto:
mysqladmin Ver 8.0.19-0ubuntu5 for Linux on x86_64 ((Ubuntu))
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Server version 8.0.19-0ubuntu5
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 10 min 44 sec
Threads: 2 Questions: 25 Slow queries: 0 Opens: 149 Flush tables: 3 Open tables: 69 Queries per second avg: 0.038
Con esto confirmamos que MySQL esta funcionando correctamente.
Comentarios
Publicar un comentario
Deja tu comentario, toda opinión es de aporte e interés