Tutoriales

Cambiar el método de autenticación para el usuario raíz de MySQL en Ubuntu

Esta director explica por qué y cómo cambiar el método de autenticación para usuarios root de MySQL Almacenamiento en distinción de la autenticación SHA-2 conectable o Autenticación nativa conectable Método en Ubuntu.

Incluso si tienes Configurar contraseña para root de MySQL Adjudicatario, todavía no puede autenticarse como con el servidor de almohadilla de datos root Adjudicatario con contraseña. Adecuado a que el agraciado root de MySQL está configurado para autenticarse con el auth_socket Complemento de forma predeterminada en emplazamiento de la contraseña en los sistemas Ubuntu con MySQL 5.7 y versiones más recientes. Por lo tanto, no puede ceder al servidor MySQL con el agraciado root y su contraseña.

Incluso si intenta autenticarse como agraciado root con el posterior comando:

$ mysql -u root -p

Recibirá el posterior mensaje de error:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

La auth_socket El complemento comprueba si el nombre de agraciado del socket (el nombre de agraciado del sistema operante) coincide con el nombre de agraciado de MySQL proporcionado por el software cliente para el servidor. Este complemento no importa y no requiere contraseña. Solo verifica si el agraciado se está conectando a través de un socket UNIX y luego compara el nombre de agraciado. Si el complemento determina que el nombre de agraciado del sistema operante y el nombre de agraciado de MySQL son idénticos, permite la conexión sin más autenticación.

Por ejemplo, cuando se fogata a un agraciado ostechnix En el sistema operante, puede iniciar sesión en 'ostechnix'@'localhost' Cuenta interiormente de MySQL si la autenticación de socket Unix es el mecanismo de autenticación definido. Si el nombre de agraciado del sistema operante difiere del nombre de agraciado de MySQL, el auth_socket El complemento simplemente se niega a conectarse.

La auth_socket El complemento mejoramiento la seguridad, pero todavía dificulta el trabajo cuando usamos programas externos como phpMyAdmin para ceder al servidor de la almohadilla de datos. Los usuarios todavía son autenticados por el auth_socket El complemento solo puede establecer una conexión desde el host locorregional a través del archivo de socket Unix. No se le permite establecer una conexión remota. Adecuado a esto, necesitamos cambiar el método de autenticación para el agraciado raíz de MySQL en Ubuntu.

1. Cambiar el método de autenticación para el agraciado raíz de MySQL en Ubuntu

MySQL ofrece muchos métodos de autenticación y los complementos que implementan esos métodos. En esta director solo se tratan dos complementos llamados caching_sha2_password y mysql_native_password esto implementa los métodos llamados Almacenamiento en distinción de la autenticación SHA-2 conectable y Autenticación nativa conectable respectivamente. Primero veremos cómo cambiar el método de autenticación para el agraciado root de MySQL en caching_sha2_password.

1.1. Cambie el complemento de autenticación a caching_sha2_password

La caching_sha2_password El complemento realiza la autenticación mediante el hash de contraseña SHA-256. En MySQL 8.0 caching_sha2_password es más el complemento de autenticación predeterminado que mysql_native_password. Ofrece un secreto de contraseña más seguro, una autenticación más rápida y un mejor rendimiento.

Para cambiar el complemento de autenticación, inicie sesión en el servidor MySQL con el posterior comando:

$ sudo mysql

Esto usa MySQL 8 auth_socket Complemento en Ubuntu, con el comando precursor puede iniciar sesión en el servidor MySQL como root Adjudicatario. Entrega tu sudo Contraseña para autenticación.

A continuación, busque el método de autenticación flagrante para todas las cuentas de agraciado de MySQL ejecutando el posterior comando en el símbolo del sistema de MySQL:

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

Salida de muestra:

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
 +------------------+------------------------------------------------------------------------+-----------------------+-----------+
 | user             | authentication_string                                                  | plugin                | host      |
 +------------------+------------------------------------------------------------------------+-----------------------+-----------+
 | debian-sys-maint | $A$005$||#WR:(W'NSP>|b2
                                             yXI9EfAeI6vnIj8I.Pwvw6Gx6V9bzVce9oTbN212V12 | 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 |
 +------------------+------------------------------------------------------------------------+-----------------------+-----------+
 5 rows in set (0.01 sec)
Verifique el método de autenticación flagrante para el agraciado raíz de MySQL

Como puede ver, el agraciado root de MySQL está usando auth_socket Complemento de autenticación. Vamos a cambiar eso auth_socket Plugin todavía caching_sha2_password Complemento con ALTER USER Comando como se muestra a continuación. Tenga en cuenta que cuando haya activado VALIDATE PASSWORD Complemento Al configurar la contraseña de agraciado raíz de MySQL, debe ingresar una contraseña segura basada en la política de contraseñas flagrante. Uno esforzado debe constar de al menos 8 caracteres, incluida una pagaré mayúscula, una pagaré minúscula, un número y un carácter distinto.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Password123#@!';

Reemplazar Password123#@! En el comando precursor, ingrese una contraseña segura y única de su selección y escríbala si la necesitamos más delante.

A continuación, actualice los cambios con el posterior comando:

mysql> FLUSH PRIVILEGES;

Ahora verifique si el complemento de autenticación flagrante se ha cambiado o no con el comando:

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

Salida de muestra:

+------------------+------------------------------------------------------------------------+-----------------------+-----------+
 | user             | authentication_string                                                  | plugin                | host      |
 +------------------+------------------------------------------------------------------------+-----------------------+-----------+
 | debian-sys-maint | $A$005$||#WR:(W'NSP>|b2
                                             yXI9EfAeI6vnIj8I.Pwvw6Gx6V9bzVce9oTbN212V12 | 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             | $A$005$z9Lq/%(r l
 +DDI9wJbql8DWZNRoet2BSwUrIgjq.l7FxRSyMb/OWk4 | caching_sha2_password | localhost |
 +------------------+------------------------------------------------------------------------+-----------------------+-----------+
 5 rows in set (0.00 sec)
Cambie el complemento de autenticación para el usuario raíz de MySQL a caching_sha2_password
Cambie el complemento de autenticación para el agraciado raíz de MySQL a caching_sha2_password

El método de autenticación para el agraciado raíz de MySQL se estableció en Caching SHA-2 Pluggable Authentication. A partir de ahora, el agraciado root de MySQL puede autenticarse con una contraseña.

Salga del indicador de MySQL:

mysql> exit

Ingrese el posterior comando para corroborar que el agraciado root de MySQL pueda iniciar sesión con una contraseña:

$ mysql -u root -p

Ingrese la contraseña del agraciado raíz de MySQL:

 Welcome to the MySQL profesor.  Commands end with ; or g.
 Your MySQL connection id is 11
 Server version: 8.0.25-0ubuntu0.20.04.1 (Ubuntu)

 Copyright (c) 2000, 2021, 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> 
Inicie sesión en el servidor MySQL con su usuario root y contraseña
Inicie sesión en el servidor MySQL con su agraciado root y contraseña

Aunque caching_sha2_password El complemento ofrece un secreto seguro mejorado y un mejor rendimiento. Tiene algunos problemas de compatibilidad con las instalaciones de MySQL existentes y causa problemas con algunas versiones de PHP. Para obtener más detalles, consulte este enlace.

Si ha enemigo problemas de compatibilidad o si el cliente o el conector no los admiten caching_sha2_password Complemento de autenticación, vuelva al método de autenticación nativo, es afirmar, H mysql_native_password como se describe en la posterior sección.

1.2. Cambie el complemento de autenticación a mysql_native_password

MySQL incluye un mysql_native_password Complemento que implementa un método de autenticación conectable nativo. Proporciona autenticación basada en el método de hash de contraseña. La mysql_native_password era el método de autenticación predeterminado en las versiones anteriores de MySQL.

Cambiar mysql_native_password Complemento, inicie sesión en MySQL como root Adjudicatario:

$ mysql -u root -p

Si utiliza auth_socket Complemento, debe ingresar el posterior comando para iniciar sesión en MySQL Server como root Adjudicatario:

$ sudo mysql

Ajustar mysql_native_password Para usar el complemento como autenticación básica para el agraciado raíz de MySQL, ejecute el posterior comando en el símbolo del sistema de MySQL.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Password123#@!';

Actualice los cambios con el posterior comando:

mysql> FLUSH PRIVILEGES;

Ahora use el comando para corroborar si el método de autenticación se ha cambiado o no:

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

Salida de muestra:

+------------------+------------------------------------------------------------------------+-----------------------+-----------+
 | user             | authentication_string                                                  | plugin                | host      |
 +------------------+------------------------------------------------------------------------+-----------------------+-----------+
 | debian-sys-maint | $A$005$||#WR:(W'NSP>|b2
                                             yXI9EfAeI6vnIj8I.Pwvw6Gx6V9bzVce9oTbN212V12 | 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             | *B6032809F2C8CE37BDF05DEFE5BA30D6DC74DC68                              | mysql_native_password | localhost |
 +------------------+------------------------------------------------------------------------+-----------------------+-----------+
 5 rows in set (0.00 sec)
Cambie el complemento de autenticación a mysql_native_password para el usuario raíz de MySQL
Cambie el complemento de autenticación a mysql_native_password para el agraciado raíz de MySQL

¡Hecho! Cambiamos el método de autenticación para usuarios raíz de MySQL a Autenticación conectable nativa.

Conclusión

En esta director, hemos explorado por qué necesitamos cambiar el método de autenticación para usuarios raíz de MySQL en sistemas Ubuntu que ejecutan MySQL 5.7 y versiones posteriores. Además vimos cómo cambiar auth_socket Plugin todavía caching_sha2_password o mysql_native_password Complemento para el agraciado root de MySQL en el sistema operante Ubuntu.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba