GNU/Linux >> Tutoriales Linux >  >> Linux

MySQL falla en:mysql ERROR 1524 (HY000):el complemento 'auth_socket' no está cargado

¡Tengo una solución!

Al restablecer la contraseña raíz en el paso 2), cambie también el complemento de autenticación a mysql_native_password :

use mysql;
update user set authentication_string=PASSWORD("") where User='root';
update user set plugin="mysql_native_password" where User='root';  # THIS LINE

flush privileges;
quit;

¡Esto me permitió iniciar sesión correctamente!

Solución de código completo

1. Primero, ejecute estos comandos bash

sudo /etc/init.d/mysql stop # stop mysql service
sudo mysqld_safe --skip-grant-tables & # start mysql without password
# enter -> go
mysql -uroot # connect to mysql

2. Luego ejecute los comandos mysql => copie y pegue esto en CLI manualmente

use mysql; # use mysql table
update user set authentication_string=PASSWORD("") where User='root'; # update password to nothing
update user set plugin="mysql_native_password" where User='root'; # set password resolving to default mechanism for root user

flush privileges;
quit;

3. Ejecuta más comandos bash

sudo /etc/init.d/mysql stop 
sudo /etc/init.d/mysql start # reset mysql
# try login to database, just press enter at password prompt because your password is now blank
mysql -u root -p 

4. Problema de socket (de sus comentarios)

Cuando vea un socket error, una comunidad vino con 2 posibles soluciones:

sudo mkdir -p /var/run/mysqld; sudo chown mysql /var/run/mysqld
sudo mysqld_safe --skip-grant-tables &

(gracias a @Cerin)

O

mkdir -p /var/run/mysqld && chown mysql:mysql /var/run/mysqld  

(gracias a @Peter Dvukhrechensky)

Caminos ciegos y posibles errores de borde

Utilice 127.0.0.1 en lugar de host local

mysql -uroot # "-hlocalhost" is default

Puede provocar un "archivo faltante" o un error slt.

mysql -uroot -h127.0.0.1

Funciona mejor.

Omita el problema del enchufe

He encontrado muchas formas de crear mysqld.sock archivo, cambiar los derechos de acceso o vincularlo. Después de todo, ese no era el problema.

Sáltate el my.cnf archivo

El tema tampoco estaba ahí. Si no estás seguro, esto podría ayudarte.


Para Ubuntu 18.04 y mysql 5.7

  • paso 1:sudo mkdir /var/run/mysqld;

    paso 2:sudo chown mysql /var/run/mysqld

    paso 3:sudo mysqld_safe --skip-grant-tables &salir (use salir si está atascado)

iniciar sesión en mysql sin contraseña

  • paso 4:sudo mysql --user=root mysql

    paso 5:SELECT user,authentication_string,plugin,host FROM mysql.user;

    paso 6:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'

ahora inicia sesión con

  • mysql -u root -p <root>

Puedes probar de la siguiente manera, funciona para mí.

Iniciar servidor:

sudo service mysql start

Ahora, ve a la carpeta de calcetines:

cd /var/run

Copia de seguridad del calcetín:

sudo cp -rp ./mysqld ./mysqld.bak

Detener servidor:

sudo service mysql stop

Restaurar el calcetín:

sudo mv ./mysqld.bak ./mysqld

Inicie mysqld_safe:

 sudo mysqld_safe --skip-grant-tables --skip-networking &

Inicie shell mysql:

 mysql -u root

Cambiar contraseña:

Por lo tanto, primero elija la base de datos

mysql> use mysql;

Ahora ingrese debajo de dos consultas:

mysql> update user set authentication_string=password('123456') where user='root';
mysql> update user set plugin="mysql_native_password" where User='root'; 

Ahora, todo estará bien.

mysql> flush privileges;
mysql> quit;

Para verificar:

mysql -u root -p

¡hecho!

N.B, After login please change the password again from phpmyadmin

Ahora marca hostname/phpmyadmin

Username: root

Password: 123456

Para obtener más detalles, consulte Cómo restablecer la contraseña olvidada phpmyadmin en Ubuntu


El mysql El comando por defecto usa sockets UNIX para conectarse a MySQL.

Si está utilizando MariaDB, debe cargar el complemento de autenticación de socket de Unix en el lado del servidor.

Puedes hacerlo editando el [mysqld] configuración como esta:

[mysqld]
plugin-load-add = auth_socket.so

Dependiendo de la distribución, el archivo de configuración generalmente se encuentra en /etc/mysql/ o /usr/local/etc/mysql/

Si unix_socket=OFF está configurado en la misma sección, habilítelo cambiándolo a unix_socket=ON o esta solución no se aplica.


Linux
  1. [Solucionado] el nombre de usuario no está en el archivo sudoers

  2. Comando yum-config-manager no encontrado [Fijar]

  3. c_rehash:Error de comando no encontrado – Solución

  4. No se permite la recuperación de clave pública:error de WSO2 MySQL

  5. Comprender la autenticación conectable de MySQL

Cómo solucionarlo:el usuario no está en el error del archivo sudoers

Solución:MySQL ERROR 1819 (HY000):su contraseña no cumple con los requisitos de la política actual

If…else…if Declaración (error de comando no encontrado)?

No se puede conectar al servidor MySQL error 111

Recuperar la base de datos mysql:mysql/mysqldump da la tabla <base de datos>. <nombre de la tabla> no existe (1146)

sudo -i devuelve un error