Wie man sich bei MySQL anmeldet und die Datenbank vom Linux-Terminal abfragt

104

Ich benutze Debian Linux. Ich habe einen Linux-Rechner, auf dem MySQL installiert ist. Ich kann mich sowohl mit dem Root-Benutzer als auch mit anderen Benutzern bei meinem Linux-Computer anmelden. Ich kann von Windows aus mit sqlyog eine Verbindung zur MySQL-Datenbank auf einem Linux-Computer herstellen. Jetzt möchte ich Abfragen auf einem Linux-Computer nur über das Linux-Terminal ausführen

Ich habe einige Dinge am Terminal ausprobiert

Ich ging zum Stammverzeichnis und dann zum Verzeichnis / var / lib

Ich führe folgende Befehle auf dem Terminal aus

mysqladmin -u root -p
mysqladmin -u root -ppassword

Jedes Mal, wenn ich folgende Fehlermeldung bekomme

FEHLER 1045 (28000) Zugriff für Benutzer 'root' @ 'localhost' verweigert (Kennwort NO verwenden)

Bitte führe mich zum Folgen

  1. Wie bekomme ich eine MySQL-Eingabeaufforderung im Linux-Terminal?
  2. Wie stoppe ich den MySQL-Server vom Linux-Terminal?
  3. Wie starte ich den MySQL-Server vom Linux-Terminal aus?
  4. Wie bekomme ich eine MySQL-Eingabeaufforderung im Linux-Terminal?
  5. Wie melde ich mich vom Linux-Terminal beim MySQL-Server an?
  6. Wie löse ich folgenden Fehler?

FEHLER 1045 (28000) Zugriff für Benutzer 'root' @ 'localhost' verweigert (Kennwort NO verwenden)

Bitte geben Sie mir Lösungen für die obige Frage. Danke

Param-Ganak
quelle
1
Wenn ich diesen Befehl mysql -u root -p ausführe, werde ich nicht nach dem Passwort gefragt und es wird die Fehlermeldung "FEHLER 1045 (28000) Zugriff für Benutzer 'root' @ 'localhost' (mit Passwort NO) verweigert" angezeigt. Eine andere Frage ist, wo Führe ich die Eingabeaufforderung root im Stammordner aus oder muss ich in ein bestimmtes Verzeichnis wechseln? gib mir seinen Weg. Danke!
Param-Ganak
Ändern Sie die Syntax für Ihren Befehl wie folgt: "mysql --user = root --password" (entfernen Sie die Anführungszeichen, wenn Sie sie in die Befehlszeile eingeben). Ansonsten scheint es ziemlich seltsam, dass Sie nicht zur Eingabe eines Passworts aufgefordert werden, und ich vermute, dass außerhalb des Bereichs von mysql möglicherweise noch etwas anderes passiert.
Baraboom

Antworten:

180

1.- Wie erhalte ich eine MySQL-Eingabeaufforderung im Linux-Terminal?

mysql -u root -p

Enter password:Geben Sie an der Eingabeaufforderung das Passwort von root ein :)

Weitere Informationen finden Sie durch Eingabe mysql --helpoder im Online-Handbuch .

2. Wie stoppe ich den MySQL-Server vom Linux-Terminal?

Es hängt davon ab, ob. Red Hat-basierte Distributionen haben den serviceBefehl:

service mysqld stop

Andere Distributionen müssen das Init-Skript direkt aufrufen:

/etc/init.d/mysqld stop

3. Wie starte ich den MySQL-Server vom Linux-Terminal aus?

Wie # 2, aber mit start.

4. Wie erhalte ich eine MySQL-Eingabeaufforderung im Linux-Terminal?

Gleich wie # 1.

5. Wie melde ich mich vom Linux-Terminal beim MySQL-Server an?

Gleich wie # 1.

6. Wie löse ich folgenden Fehler?

Gleich wie # 1.

Álvaro González
quelle
10

Zu Ihrer ersten Frage:

mysql -u root -p

oder

mysqladmin -u root -p "your_command"

je nachdem was du machen willst. Das Passwort wird von Ihnen abgefragt, sobald Sie die Eingabetaste drücken! Ich schätze , dass Sie wirklich wollen , verwenden mysql und nicht mysqladmin .

Das Neustarten oder Stoppen des MySQL-Servers unter Linux hängt von Ihrer Installation ab. In den gängigen Debian-Derivaten funktioniert dies jedoch zum Starten, Stoppen und Neustarten des Dienstes:

sudo /etc/init.d/mysql start
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql restart
sudo /etc/init.d/mysql status

In einigen neueren Distributionen funktioniert dies möglicherweise auch, wenn MySQL als Deamon / Service eingerichtet ist.

sudo service mysql start
sudo service mysql stop
sudo service mysql restart
sudo service mysql status

Aber die Frage ist wirklich unmöglich zu beantworten, ohne Ihr spezielles Setup zu kennen.

Flindeberg
quelle
Immer wenn ich diesen Befehl mysql -u root -p ausführe, werde ich nicht nach dem Passwort gefragt und die Fehlermeldung "FEHLER 1045 (28000) Zugriff für Benutzer 'root' @ 'localhost' (Verwenden des Passworts NO) verweigert" wird angezeigt laufe ich über der Eingabeaufforderung root im Stammordner oder muss ich in ein bestimmtes Verzeichnis gehen, gib mir seinen Pfad danke
Param-Ganak
Sie müssen nicht in ein bestimmtes Verzeichnis wechseln. Sie können es von überall ausführen. Könnten Sie die Antwort in uname -aund mysql --versioneinfügen und hier einfügen (geben Sie sie einfach in das Terminal ein). Wir könnten Ihnen dann wahrscheinlich mehr Hilfe geben. service mysql statuswäre auch hilfreich.
Flindeberg
5

Ich gehe davon aus, dass Sie einen MySQL-Client verwenden möchten, der eine gute Sache ist und viel effizienter zu verwenden ist als alle phpMyAdmin-Alternativen.

Sie können sich ordnungsgemäß mit dem Befehlszeilenclient anmelden, indem Sie Folgendes eingeben:

mysql -u username -p

Beachten Sie, dass ich das Passwort nicht eingegeben habe. Dies würde das Passwort auf dem Bildschirm sichtbar machen, was in einer Mehrbenutzerumgebung nicht gut ist!

Nachdem Sie diese Eingabetaste eingegeben haben, werden Sie von mysql nach Ihrem Passwort gefragt.

Sobald Sie angemeldet sind, benötigen Sie natürlich:

use databaseName;

etwas tun.

Viel Glück.

stefgosselin
quelle
Wenn ich diesen Befehl mysql -u root -p ausführe, werde ich nicht nach dem Passwort gefragt und es wird die Fehlermeldung "FEHLER 1045 (28000) Zugriff für Benutzer 'root' @ 'localhost' (mit Passwort NO) verweigert" angezeigt. Eine andere Frage ist, wo Führe ich die Eingabeaufforderung root im Stammordner aus oder muss ich in ein bestimmtes Verzeichnis wechseln? gib mir seinen Weg. Danke!
Param-Ganak
Auf welcher Linux-Distribution laufen Sie?
Stefgosselin
5

Versuchen Sie an der Eingabeaufforderung:

mysql -u root -p

Geben Sie das Passwort ein, wenn Sie dazu aufgefordert werden.

Quarkonium
quelle
Wenn ich diesen Befehl mysql -u root -p ausführe, werde ich nicht nach dem Passwort gefragt und es wird die Fehlermeldung "FEHLER 1045 (28000) Zugriff für Benutzer 'root' @ 'localhost' (mit Passwort NO) verweigert" angezeigt. Eine andere Frage ist, wo Führe ich die Eingabeaufforderung root im Stammordner aus oder muss ich in ein bestimmtes Verzeichnis wechseln? gib mir seinen Weg. Danke!
Param-Ganak
Sie sollten es von Ihrem Home-Verzeichnis aus ausführen können, solange Sie den Pfad konfiguriert haben. Es sollte funktionieren ...
Quarkonium
4

Ich hatte heute genau das gleiche Problem mit meinem ArchLinux VPS.

mysql -u root -p hat einfach nicht funktioniert mysql -u root -pmypassword funktioniert hat.

Es stellte sich heraus, dass ich eine defekte / dev / tty-Gerätedatei hatte (höchstwahrscheinlich nach einem udev-Upgrade), sodass mysql sie nicht für eine interaktive Anmeldung verwenden konnte.

Am Ende habe ich / dev / tty entfernt und mit mknod /dev/tty c 5 1und neu erstellt chmod 666 /dev/tty. Das löste das MySQL-Problem und einige andere Probleme.

user789877
quelle
Das funktioniert tatsächlich! Jetzt kann jeder das Root-Passwort in der bash_history sehen. : / Woher wusstest du, dass die / dev / tty durcheinander ist?
user3870315
2

Um MySQL auf den meisten Linux-Systemen zu stoppen oder zu starten, sollte Folgendes funktionieren:

/etc/init.d/mysqld stop

/etc/init.d/mysqld start

Die anderen Antworten sehen für den Zugriff auf den MySQL-Client über die Befehlszeile gut aus.

Viel Glück!

Baraboom
quelle
2
  1. Sie sollten den mysqlBefehl verwenden. Es ist ein Befehlszeilenclient für MySQL-RDBMS und wird mit den meisten MySQL-Installationen geliefert: http://dev.mysql.com/doc/refman/5.1/en/mysql.html

  2. Verwenden Sie normalerweise das richtige Init-Skript mit stopoder start-Parameter, um die MySQL-Datenbank zu stoppen oder zu starten (dies sollte selten "von Hand" erforderlich sein) /etc/init.d/mysql stop. Dies hängt jedoch von Ihrer Linux-Distribution ab. Einige neue Distributionen fördern den service mysql startStil.

  3. Sie mysqlmelden sich mit der SQL-Shell an.

  4. Der Fehler tritt wahrscheinlich aufgrund des doppelten Parameters '-p' auf. Sie können -ppasswordoder nur -pund Sie werden interaktiv nach dem Passwort gefragt. Beachten Sie auch, dass einige Installationen möglicherweise den Benutzer mysql (nicht root) als Administrator verwenden. Überprüfen Sie Ihre sqlyog-Konfiguration, um funktionierende Verbindungsparameter zu erhalten.

Cezio
quelle
2

Versuchen Sie bitte "sudo mysql -u root -p".

Udi
quelle
2

In Ubuntu muss ich nur sudo mysqlim GNOME-Terminal laufen und das wars. Ich kann anfangen, Datenbanken zu erstellen oder Daten in einer Tabelle usw. abzufragen.

Pranav
quelle
1

Wenn du immer noch keinen Zugriff auf db hast, 1. ist in deiner Fehlermeldung kein Passwort gesetzt, oder? Geben Sie dann zuerst mysqlpasswd 'username' ein und geben Sie ihm dann erneut einen Kennworttyp wie gewünscht. Versuchen Sie dann erneut, mit mysql -p darauf zuzugreifen, wenn Sie root sind

user2807050
quelle
1

wenn Sie bereits als root angemeldet sind

mysql -u root

Wenn Sie das Kennwort eingeben, wird dies ansonsten als Fehler zurückgegeben

maioman
quelle
0

benutze dieses "mysql -uroot -pPassword"

vadiraj jahagirdar
quelle