"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Por qué recibo el error mySQL 1698 (acceso de acceso) y cómo puedo solucionarlo?

¿Por qué recibo el error mySQL 1698 (acceso de acceso) y cómo puedo solucionarlo?

Publicado el 2025-03-25
Navegar:298

Why Am I Getting MySQL Error 1698 (Access Denied) and How Can I Fix It?

Handling Error 1698 During MySQL Login

Users may encounter ERROR 1698 (28000): Access denied for user 'root'@'localhost' when trying to log into the MySQL database with the root user. Este error a menudo se encuentra en sistemas como Ubuntu, donde MySQL utiliza el complemento Unix Auth_socket para la autenticación de forma predeterminada.

en segundo plano: el complemento Auth_socket se basa en las credenciales del usuario del sistema para la autenticación. Al consultar la tabla mysql.user, puede verificar que el usuario raíz esté registrado con este complemento:

SELECT User, Host, plugin FROM mysql.user;

posibles soluciones:

opción 1: Configurar el usuario de Roots para usar el usuario de Rootsql. Plugin Este método implica configurar el usuario root para usar el complemento más tradicional mysql_native_password:

actualizar el usuario set plugin = 'mysql_native_password' Where user = 'root'; Privilegios de descarga; SUDO Service MySql reiniciar
UPDATE user SET plugin='mysql_native_password' WHERE User='root';
FLUSH PRIVILEGES;
sudo service mysql restart

Opción 2: Cree un nuevo usuario de base de datos (recomendado) Un enfoque alternativo es crear un nuevo usuario de la base de datos utilizando su nombre de usuario del sistema. Esto proporciona una opción más manejable y segura:

crea el usuario 'Your_System_user'@'localhost' identificado por 'Your_Passwd'; Otorgue todos los privilegios en *. * A 'Your_System_user'@'localhost'; Actualizar el usuario set plugin = 'auth_socket' donde user = 'Your_System_user'; Privilegios de descarga; sudo servicio mySql reiniciar
UPDATE user SET plugin='mysql_native_password' WHERE User='root';
FLUSH PRIVILEGES;
sudo service mysql restart
que con la opción 2, se conectará a mysql usando su nombre de usuario del sistema:

mysql -u your_system_user
UPDATE user SET plugin='mysql_native_password' WHERE User='root';
FLUSH PRIVILEGES;
sudo service mysql restart

consideraciones adicionales: [&] en mysql Versions, Versions, Versions. El complemento Auth_Socket puede haber sido reemplazado por Caching_Sha2_Password. Consulte la documentación de MySQL para el complemento de autenticación apropiado y el método de inicio de sesión.

    en Debian 9 (estirado), el complemento Auth_socket se renombra a unix_socket. Ajuste el comando sql en consecuencia.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3