GNU/Linux >> LINUX-Kenntnisse >  >> Linux

MySQL schlägt fehl bei:mysql ERROR 1524 (HY000):Plugin „auth_socket“ ist nicht geladen

Ich habe eine Lösung!

Beim Zurücksetzen des Root-Passworts in Schritt 2) ändern Sie auch das Auth-Plugin auf 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;

Dadurch konnte ich mich erfolgreich anmelden!

Vollständige Codelösung

1. Führen Sie zuerst diese Bash-Befehle

aus
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. Führen Sie dann mysql-Befehle aus => kopieren Sie dies und fügen Sie es manuell in die CLI ein

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. Führen Sie weitere Bash-Befehle aus

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. Socket-Problem (aus Ihren Kommentaren)

Wenn Sie eine Buchse sehen error kam eine Community mit 2 möglichen Lösungen:

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

(Dank an @Cerin)

Oder

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

(Dank an @Peter Dvukhrechensky)

Blinde Pfade und mögliche Kantenfehler

Verwenden Sie 127.0.0.1 anstelle von localhost

mysql -uroot # "-hlocalhost" is default

Kann zu "Fehlende Datei" oder SLT-Fehler führen.

mysql -uroot -h127.0.0.1

Funktioniert besser.

Überspringen Sie das Socket-Problem

Ich habe viele Möglichkeiten gefunden, mysqld.sock zu erstellen Datei, ändern Sie die Zugriffsrechte oder verknüpfen Sie sie per Symlink. Es war schließlich nicht das Problem.

Überspringen Sie my.cnf Datei

Das Problem war auch nicht da. Wenn Sie sich nicht sicher sind, hilft Ihnen das vielleicht weiter.


Für Ubuntu 18.04 und MySQL 5.7

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

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

    Schritt 3:sudo mysqld_safe --skip-grant-tables &beenden (verwenden Sie quit, wenn es hängen bleibt)

ohne Passwort bei mysql anmelden

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

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

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

Melden Sie sich jetzt mit

an
  • mysql -u root -p <root>

Sie können wie folgt versuchen, es funktioniert für mich.

Server starten:

sudo service mysql start

Gehen Sie jetzt zum Sockenordner:

cd /var/run

Socke sichern:

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

Server stoppen:

sudo service mysql stop

Stellen Sie die Socke wieder her:

sudo mv ./mysqld.bak ./mysqld

Starten Sie mysqld_safe:

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

MySQL-Shell initialisieren:

 mysql -u root

Passwort ändern:

Wählen Sie daher zuerst die Datenbank aus

mysql> use mysql;

Geben Sie nun unten zwei Abfragen ein:

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

Jetzt wird alles in Ordnung sein.

mysql> flush privileges;
mysql> quit;

Zur Überprüfung:

mysql -u root -p

fertig!

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

Überprüfen Sie nun hostname/phpmyadmin

Username: root

Password: 123456

Weitere Einzelheiten finden Sie unter So setzen Sie das vergessene Passwort phpmyadmin in Ubuntu zurück


Die mysql Der Befehl verwendet standardmäßig UNIX-Sockets, um eine Verbindung zu MySQL herzustellen.

Wenn Sie MariaDB verwenden, müssen Sie das Unix Socket Authentication Plugin auf der Serverseite laden.

Sie können dies tun, indem Sie [mysqld] bearbeiten Konfiguration wie folgt:

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

Je nach Distribution befindet sich die Konfigurationsdatei normalerweise unter /etc/mysql/ oder /usr/local/etc/mysql/

Wenn unix_socket=OFF im selben Abschnitt gesetzt ist, aktivieren Sie es, indem Sie es auf unix_socket=ON ändern oder dieser Fix gilt nicht.


Linux
  1. Fehlermeldung in Arista Transcoder, wie installiere ich das Ffdeinterlace-Plugin?

  2. visudo:Befehl nicht gefunden

  3. sudoedit:Befehl nicht gefunden

  4. sudo:Befehl nicht gefunden

  5. Behebung von sudo:add-apt-repository:Fehler „Befehl nicht gefunden“.

Problembehebung:Fehler „Benutzer befindet sich nicht in der Sudoers-Datei“.

Fix – MySQL ERROR 1819 (HY000):Ihr Passwort entspricht nicht den aktuellen Richtlinienanforderungen

If…else…if-Anweisung (Fehler „Befehl nicht gefunden“)?

Grundlegendes zur MySQL Pluggable Authentication

MySQL - FEHLER 1045 - Zugriff verweigert

Verbindung zum MySQL-Server nicht möglich Fehler 111