it-swarm.com.de

Verbinden Sie sich ohne Sudo mit dem MySQL-Server

Der Befehl: 

mysql -u root -p

gibt den Fehler:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

Das Ausführen von Sudo-Privilegien funktioniert jedoch:

Sudo mysql -u root -p

Ist es möglich, die Sudo-Anforderung zu beseitigen, weil sie mich daran hindert, die Datenbank in intellij zu öffnen? Ich habe wie in der Antwort auf diese Frage Folgendes versucht Verbinden Sie sich mit dem lokalen MySQL-Server ohne Sudo :

Sudo chmod -R 755 /var/lib/mysql/

was nicht geholfen hat. Die obige Frage hat einen anderen Fehler

20

Nur der root-Benutzer benötigt eine Sudo-Anforderung, um sich bei mysql anzumelden. Ich habe dies gelöst, indem ich einen neuen Benutzer angelegt und Zugriff auf die erforderlichen Datenbanken gewährt habe:

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON database_name.* TO 'newuser'@'localhost';

newuser kann sich jetzt ohne Sudo-Anforderung anmelden:

mysql -u newuser -p
37

Sie müssen den Algorithmus ändern. Folgende Arbeit für mich

mysql > ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
mysql > FLUSH PRIVILEGES;
12
Hemant Thorat

melden Sie sich zuerst mit Sudo bei Ihrem MySQL an.

verwenden Sie dann diesen Code, um den Spaltenwert "plugin" für "root" von "unix_socket" in "mysql_native_password" zu ändern.

UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket';

FLUSH PRIVILEGES;

starten Sie den mysql-Dienst schließlich neu. das ist es.

wenn Sie weitere Informationen wünschen, überprüfen Sie this link

12

Sie können denselben ROOT-Benutzer oder einen NEW_USER verwenden und die Sudo-Berechtigungen entfernen. Das folgende Beispiel zeigt, wie die Verbindung mit ROOT ohne Sudo entfernt wird.

Stellen Sie mit Sudo eine Verbindung zu MY-SQL her

Sudo mysql -u root

Löschen Sie den aktuellen Root-Benutzer aus der Benutzertabelle

DROP USER 'root'@'localhost';

Neuen ROOT-Benutzer erstellen (Sie können bei Bedarf einen anderen Benutzer erstellen)

CREATE USER 'root'@'%' IDENTIFIED BY '';

Berechtigungen für neuen Benutzer erteilen (ROOT)

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

Ersetzen Sie die Berechtigungen, damit die Grant-Tabellen sofort neu geladen werden. ( Warum müssen wir Privilegien löschen? )

FLUSH PRIVILEGES;

Jetzt ist alles gut. Überprüfen Sie für alle Fälle, ob ein neuer Root-Benutzer erstellt wurde.

SELECT User,Host FROM mysql.user;

+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| root             | %         |
| debian-sys-maint | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)

Beenden Sie MySQL. (Drücken Sie STRG + Z). Stellen Sie eine Verbindung zu MySQL ohne Sudo her

mysql -u root

Hoffe das wird helfen!

5

Sie können die folgende Abfrage verwenden:

GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password';

Diese Abfrage reicht aus.

2
SREEKANTH KC

Ich habe dieses Problem mit den folgenden Befehlen gelöst.

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'username'@'localhost';
FLUSH PRIVILEGES;

Hier username = beliebiger Benutzername.

und password = ein beliebiges Passwort.

0
Atequer Rahman

In dem Kommentar der Frage, auf die Sie antworten, wird darauf hingewiesen

Ok, versuchen Sie einfach, alle Verzeichnisse im Pfad des .__ zu analysieren. Socket-Datei, müssen sie auch o + rx und die Socken-Datei haben (es ist keine gute Idee, sie von anderen anpassbar zu machen). 

Sie können auch versuchen, mysql.sock zu entfernen und mysqld, die .__, neu zu starten. Die Datei sollte vom Dämon mit den richtigen Berechtigungen erstellt werden.

Dies schien für diese Frage (die, von der Sie sagten, dass Sie angesehen haben) zu funktionieren, so dass es auch für Sie funktionieren könnte

0
user6335777