1417 Stimmen

Wie kann ich eine Liste von Benutzerkonten über die Befehlszeile in MySQL abrufen?

Ich verwende das MySQL-Befehlszeilenprogramm und kann durch eine Datenbank navigieren. Jetzt möchte ich eine Liste der Benutzerkonten sehen. Wie kann ich das tun?

Ich verwende MySQL Version 5.4.1.

0 Stimmen

@Mustapha Warum die Titeländerung? Die Antworten hier sind SQL, die man von überall aus ausführen kann, nicht nur von der Kommandozeile. Und was hat dieser Tag mit der Frage zu tun?

0 Stimmen

Der Zweck meiner Bearbeitung war es, die Kohärenz zwischen dem Titel und der Beschreibung aufrechtzuerhalten, aber ich denke, Sie haben ein gutes Argument. Machen Sie Ihre Bearbeitung Herr @Rup

1893voto

George Claghorn Punkte 25699

Verwenden Sie diese Abfrage:

SELECT User FROM mysql.user;

Dadurch wird eine Tabelle wie die folgende ausgegeben:

+-------+
| User  |
+-------+
| root  |
+-------+
| user2 |
+-------+

Als Matthew Scharley weist in den Kommentaren zu dieser Antwort darauf hin können Sie eine Gruppe nach dem User Spalte, wenn Sie nur eindeutige Benutzernamen sehen möchten.

47 Stimmen

Ich denke, es könnte notwendig sein, eine Gruppe zu bilden User auch, um nur eindeutige Benutzerwerte zu erhalten, da es für jeden Benutzer eine eigene Zeile gibt user @ host Eintrag.

5 Stimmen

Wie kann man die gleichen Informationen ohne Sql-Abfrage finden?

8 Stimmen

@barrycarter DELETE FROM mysql.user; besser haben WHERE user='someuser' and host='somehost'; Wenn Sie das tun DELETE FROM mysql.user; sind alle Benutzer verschwunden. Logins nach dem nächsten mysql-Neustart oder FLUSH PRIVILEGES; Benutzer aus dem Gedächtnis löschen. Hier ist ein Beispiel für einen meiner Beiträge zum Thema DELETE FROM mysql.user verantwortungsbewusst: dba.stackexchange.com/questions/4614/

463voto

spkane Punkte 5498

Ich finde dieses Format am nützlichsten, da es das Host-Feld enthält, das in MySQL wichtig ist, um zwischen Benutzereinträgen zu unterscheiden.

select User,Host from mysql.user;

1 Stimmen

Einfach neugierig. Wann wird diese host bei der Arbeit mit Mysql-Datenbanken ins Spiel kommen? [Mysql Noob]

7 Stimmen

@Packer der host kommt ins Spiel, wenn Sie eine Verbindung von einem anderen Server aus herstellen. Es ist möglich, unterschiedlichen Zugang zu gewähren 'packer'@'example.com' y 'packer'@'google.com'

126voto

RolandoMySQLDBA Punkte 42705

Ein Benutzerkonto umfasst den Benutzernamen und den Zugang auf Host-Ebene.

Daher ist dies die Abfrage, die alle Benutzerkonten liefert

SELECT CONCAT(QUOTE(user),'@',QUOTE(host)) UserAccount FROM mysql.user;

7 Stimmen

Dies ist im Grunde dasselbe wie spkane's Antwort . Welchen Vorteil hat die Verkettung der Spalten user und host?

8 Stimmen

Ein Beispiel: die user@host Format wird für die Festlegung von Passwörtern verwendet. Das Weglassen des Hosts in der SET PASSWORD erzeugt einen Fehler. SET PASSWORD FOR wordpressuser = PASSWORD('...'); erzeugt den Fehler ERROR 1133 (42000): Can't find any matching row in the user table . Binden Sie den Host ein und es funktioniert. SET PASSWORD FOR wordpressuser@localhost = PASSWORD('...'); produziert Query OK, 0 rows affected (0.00 sec) .

3 Stimmen

Die beste Antwort, was auch immer die Neinsager beklagen mögen. Das einzige, was ich ändern würde, wäre das Anhängen eines ORDER BY user dazu.

52voto

Nicolas Manzini Punkte 8083

Um Wiederholungen von Benutzern zu vermeiden, wenn sie sich von einem anderen Ort aus verbinden:

select distinct User from mysql.user;

33voto

VPK Punkte 2994

MySQL speichert die Benutzerinformationen in seiner eigenen Datenbank. Der Name der Datenbank lautet MySQL . In dieser Datenbank befinden sich die Benutzerinformationen in einer Tabelle, einem Dataset, mit dem Namen user . Wenn Sie sehen möchten, welche Benutzer in der MySQL-Benutzertabelle eingerichtet sind, führen Sie den folgenden Befehl aus:

SELECT User, Host FROM mysql.user;

+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| root             | localhost |
| root             | demohost  |
| root             | 127.0.0.1 |
| debian-sys-maint | localhost |
|                  | %         |
+------------------+-----------+

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X