mysql - not - install plugin unix_socket soname auth_socket '';
MySQL falla en: mysql "ERROR 1524(HY000): el complemento ''auth_socket'' no está cargado" (7)
Mi entorno local es:
- Ubuntu 16.04 nuevo
- con PHP 7
-
con MySQL 5.7 instalado
sudo apt-get install mysql-common mysql-server
Cuando intenté iniciar sesión en MySQL (a través de CLI):
mysql -u root -p
Encontré un problema cíclico con 3 pasos.
1) Primero fue un problema de socket
ERROR 2002 (HY000): Can''t connect to local MySQL server through socket ''/var/run/mysqld/mysqld.sock''
Solución: reiniciar la PC.
Lo que condujo a otro error:
2) Con acceso denegado
ERROR 1698 (28000): Access denied for user ''root''@''localhost''.
Posible problema? ¡Contraseña incorrecta para el usuario "root"!
Solución: restablezca la contraseña de root con este tutorial .
Con la contraseña correcta y el socket de trabajo, llega el último error.
3) Complemento de autenticación incorrecto
mysql "ERROR 1524 (HY000): Plugin ''unix_socket'' is not loaded"
Aquí me detuve o de alguna manera llegué a 1) nuevamente.
El comando
mysql
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.
Puede hacerlo editando la configuración
[mysqld]
esta manera:
[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/
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 & quit (use quit si está atascado)
iniciar sesión en mysql sin contraseña
-
paso 4: sudo mysql --user = root mysql
Paso 5: SELECCIONAR usuario, autenticación_cadena, complemento, host DESDE mysql.user;
paso 6: ALTERAR USUARIO ''root'' @ ''localhost'' IDENTIFICADO CON mysql_native_password POR ''root''
ahora inicie sesión con
- mysql -u root -p
Pruébelo: sudo mysql_secure_installation
El trabajo está en Ubuntu 18.04
Puedes probar con los siguientes comandos:
hduser@master:~$ sudo /etc/init.d/mysql stop
[ ok ] Stopping mysql (via systemctl): mysql.service.
hduser@master:~$ sudo /etc/init.d/mysql start
[ ok ] Starting mysql (via systemctl): mysql.service.
Puedes probar estos pasos:
Detener Mysql Service 1st
sudo /etc/init.d/mysql stop
Inicie sesión como root sin contraseña
sudo mysqld_safe --skip-grant-tables &
Después de iniciar sesión en la terminal mysql, debe ejecutar más comandos:
use mysql;
UPDATE mysql.user SET authentication_string=PASSWORD(''solutionclub3@*^G''), plugin=''mysql_native_password'' WHERE User=''root'';
flush privileges;
sudo mysqladmin -u root -p -S /var/run/mysqld/mysqld.sock shutdown
Después de reiniciar su servidor mysql Si aún enfrenta un error, debe visitar: Restablecer la contraseña de root de MySQL 5.7 Ubuntu 16.04
Puedes probar lo siguiente, me funciona.
Iniciar servidor:
sudo service mysql start
Ahora, vaya 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 &
Shell de inicio mysql:
mysql -u root
Cambia la contraseña:
Por lo tanto, primero elija la base de datos
mysql> use mysql;
Ahora ingrese a continuación 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 comprobar:
mysql -u root -p
¡hecho!
NB, After login please change the password again from phpmyadmin
Ahora verifique el
hostname/phpmyadmin
Username: root
Password: 123456
Para obtener más detalles, consulte Cómo restablecer la contraseña olvidada phpmyadmin en Ubuntu
Tengo una solución!
Al restablecer la contraseña de root en el paso 2), también cambie 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 con éxito!
Solución de código completo
1. ejecutar comandos bash
1. Primero, ejecuta 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 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. ejecutar 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 del zócalo (de sus comentarios)
Cuando ve un error de socket , una comunidad viene 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
Use 127.0.0.1 en lugar de localhost
mysql -uroot # "-hlocalhost" is default
Puede provocar un "archivo faltante" o un error slt.
mysql -uroot -h127.0.0.1
Funciona mejor
Omitir el problema del socket
He encontrado muchas formas de crear el archivo
mysqld.sock
, cambiar los derechos de acceso o vincularlo.
No era el problema después de todo.
Omita el archivo
my.cnf
El problema tampoco estaba allí. Si no está seguro, esto podría ayudarlo .