GNU/Linux >> Linux Esercitazione >  >> Linux

MySQL fallisce su:mysql ERROR 1524 (HY000):il plugin 'auth_socket' non è caricato

Ho una soluzione!

Quando reimposti la password di root al passaggio 2), modifica anche il plug-in di autenticazione in 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;

Questo mi ha permesso di accedere con successo!

Soluzione completa del codice

1. Innanzitutto, esegui questi comandi 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. Quindi esegui i comandi mysql => copia incolla manualmente nella CLI

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. Esegui più comandi 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 con il socket (dai tuoi commenti)

Quando vedi un socket errore, è arrivata una community con 2 possibili soluzioni:

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

(grazie a @Cerin)

Oppure

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

(grazie a @Peter Dvukhrechensky)

Percorsi ciechi e possibili errori di margine

Usa 127.0.0.1 invece di localhost

mysql -uroot # "-hlocalhost" is default

Può portare a "file mancante" o errore slt.

mysql -uroot -h127.0.0.1

Funziona meglio.

Salta il problema del socket

Ho trovato molti modi per creare mysqld.sock file, modificare i diritti di accesso o collegarlo simbolicamente. Dopo tutto, non era questo il problema.

Salta il my.cnf file

Anche il problema non c'era. Se non sei sicuro, questo potrebbe aiutarti.


Per Ubuntu 18.04 e mysql 5.7

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

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

    passaggio 3:sudo mysqld_safe --skip-grant-tables &esci (usa quit se è bloccato )

accedere a mysql senza password

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

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

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

ora accedi con

  • mysql -u root -p <root>

Puoi provare come segue funziona per me.

Avvia server:

sudo service mysql start

Ora vai alla cartella dei calzini:

cd /var/run

Eseguire il backup del calzino:

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

Arresta server:

sudo service mysql stop

Ripristina il calzino:

sudo mv ./mysqld.bak ./mysqld

Avvia mysqld_safe:

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

Inizia la shell mysql:

 mysql -u root

Cambia password:

Quindi, scegli prima il database

mysql> use mysql;

Ora inserisci sotto due query:

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

Ora andrà tutto bene.

mysql> flush privileges;
mysql> quit;

Per il controllo:

mysql -u root -p

fatto!

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

Ora seleziona hostname/phpmyadmin

Username: root

Password: 123456

Per maggiori dettagli, controlla Come reimpostare la password dimenticata phpmyadmin in Ubuntu


Il mysql Il comando per impostazione predefinita utilizza i socket UNIX per connettersi a MySQL.

Se stai utilizzando MariaDB, devi caricare il plug-in Unix Socket Authentication sul lato server.

Puoi farlo modificando il [mysqld] configurazione come questa:

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

A seconda della distribuzione, il file di configurazione si trova solitamente in /etc/mysql/ o /usr/local/etc/mysql/

Se unix_socket=OFF è impostato nella stessa sezione, abilitalo modificandolo in unix_socket=ON o questa correzione non si applica.


Linux
  1. Il nome utente [Risolto] non è nel file sudoers

  2. Comprensione dell'autenticazione collegabile MySQL

  3. visudo:comando non trovato

  4. sudoedit:comando non trovato

  5. sudo:comando non trovato

Come risolvere il problema:l'utente non è nell'errore del file sudoers

Correzione – MySQL ERROR 1819 (HY000):la tua password non soddisfa i requisiti della politica corrente

If...else...if Statement (comando non trovato errore)?

Impossibile connettersi all'errore 111 del server MySQL

sudo -i restituisce un errore

sudo non funziona su alcuni comandi