2016-05-15 10 views
8

Der Befehl:Verbindung zum MySQL-Server ohne sudo

mysql -u root -p 

gibt den Fehler:

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

Aber sudo-Privilegien ausgeführt wird, funktioniert:

sudo mysql -u root -p 

Ist es möglich, zu erhalten los von der sudo Anforderung, weil es verhindert, dass ich die Datenbank in intellij öffnen? Ich habe versucht, die folgenden, wie in der Antwort auf diese Frage Connect to local MySQL server without sudo:

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

, die nicht geholfen haben. Die obige Frage ist ein anderer Fehler

geworfen
+0

Mögliches Duplikat [Verbindung mit lokalem MySQL-Server ohne sudo] (http://stackoverflow.com/questions/24479868/connect-to-local-mysql-server-without-sudo) –

+0

Ich habe erwähnt, dass es nicht funktioniert –

Antwort

15

Nur die Wurzel Der Benutzer benötigt die sudo-Anforderung, um sich bei mysql anzumelden. Ich beschloss, dies durch einen neuen Benutzer erstellen und die Gewährung des Zugangs zu den erforderlichen Datenbanken:

mysql -u newuser 
0

Im Kommentar der Frage, die Sie beantworten, die Sie Bezug genommen wird, liest es

Ok, just try to analyze all of the directories down in the path of the socket file, they need to have o+rx and the sock file too (it's not a good idea to make it modifiable by others).

You can also try to remove mysql.sock and then restart mysqld, the file should be created by the daemon with proper privileges.

Dies schien für this question zu arbeiten (die Sie sagten, Sie sah), so kann es als auch für Sie arbeiten

+0

Wie mache ich das? Die Frage, die ich bezog, hat einen anderen Fehler geworfen –

+0

Das ist kein Grund zum Downvote !! : teh einen Blick in die Datei /etc/mysql/my.cnf und ändere dies: # plugin-load-add = auth_socket.so und starte Datenbank neu, oder lies wie man mysql ohne Passwort startet https: //www.liberiangeek. net/2014/10/reset-root-password-mariadb-centos-7/ –

-3

die Fehlermeldung:

"eRROR 1698 (28000): Zugriff verweigert für Benutzer 'root' @ 'localhost'"

bedeutet, dass der Server die Verbindung für diesen Benutzer nicht erlaubt und nicht, dass mysql nicht auf den Socket zugreifen kann.

dies versuchen, das Problem zu lösen:

Anmeldung in Ihrer DB

sudo mysql -u root -p 

dann diese Änderungen vornehmen:

MariaDB []>use mysql; 
MariaDB [mysql]>update user set plugin=' ' where User='root'; 
MariaDB [mysql]>flush privileges; 
MariaDB [mysql]>exit 

try Login wieder ohne sudo

+1

das habe ich ausprobiert und jetzt kann ich mich nicht mal mit sudo einloggen. Müsste mysql neu installieren :( –

+0

Down vote weil anwer "gefährlich inkorrekt" ist. Wie in http://stackoverflow.com/help/privileges/vote-down. @Bernd Buffen hast du als Rache abgelehnt. –

+0

da ist absolut keine Gefahr, weil du alles zurück stellen kannst.Ich scheint es Gefahr, dass jemand mehr als eine Maus verwenden –

4

ersten Login auf Ihr mysql mit sudo:

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

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

jetzt newuser ohne sudo Anforderung anmelden können.

dann verwenden Sie diesen Code, um "plugin" column Wert von "unix_socket" zu "mysql_native_password" für root Benutzer zu ändern.

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

FLUSH PRIVILEGES; 

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

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

+0

Plugin-Wert war 'auth_socket' in meinem Fall. – Zubin

0

Sie müssen Algorithmus ändern.Nach der Arbeit für mich,

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