Häufig benötigte MySQL-Befehle

In diesem Artikel dokumentiere ich die von mir am häufigsten verwendeten und am schnellsten vergessenen MySQL-Befehle. So muss ich sie nicht jedes Mal in der offiziellen Dokumentation nachschlagen.1

Der Vollständigkeit halber beginne ich mit dem Befehl, mit dem man sich mit einem MySQL-Server verbindet, welcher auf dem localhost läuft.

$ mysql -u BENUTZERNAME -p
Password: 

Eine neue Datenbank kann mit dem folgenden Befehl erstellt werden2:

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
    [create_specification] ...

create_specification:
    [DEFAULT] CHARACTER SET [=] charset_name
  | [DEFAULT] COLLATE [=] collation_name

Beispiel:

CREATE DATABASE db_name;

Einen MySQL-Benutzeraccount erstellt man mit dem Befehl3:

CREATE USER user_specification [, user_specification] ...

user_specification:
    user [ identified_option ]

auth_option: {
    IDENTIFIED BY 'auth_string'
  | IDENTIFIED BY PASSWORD 'hash_string'
  | IDENTIFIED WITH auth_plugin
  | IDENTIFIED WITH auth_plugin AS 'hash_string'
}

Beispiel:

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

Mit dem folgenden Kommando werden dem erstellten Benutzer Zugriffsrechte auf die erstellte Datenbank gewährt.4 Mit diesen Berechtigungen kann der Benutzer neue Tabellen in der Datenbank erstellen, Daten in Tabellen einfügen oder auch die gesamte Datenbank löschen.

GRANT ALL PRIVILEGES ON db_name.* TO 'pusemuckel'@'localhost';

Die letzten beiden Schritte können auch verkürzt mit folgendem Kommando ausgeführt werden:

GRANT ALL ON db_name.* TO 'pusemuckel'@'localhost' IDENTIFIED BY 'password';

Hat man neue Benutzer angelegt, oder die Berechtigungen bestehendender Benutzer geändert, werden die neuen Berechtigungen mit dem folgenden Kommando geladen:

FLUSH PRIVILEGES;

Irgendwann möchte man in seiner Datenbank auch wieder aufräumen und nicht mehr benötigte Datenbanken und Benutzer löschen5 6. Dies wird mit den beiden folgenden Kommandos erledigt:

DROP DATABASE db_name;
DROP USER user;

So, nun muss ich mich zukünftig nur noch daran erinnern, hier nachzuschauen, wenn mir mal wieder die Syntax entfallen ist. ;-)

5 Gedanken zu „Häufig benötigte MySQL-Befehle

  1. Lars

    Hi, für die tägliche Arbeit mit der Datenbank, kann ich jedem nur empfehlen eine entsprechende GUI zu verwenden, da man damit sehr viel schneller arbeiten kann. Nutze dafür meistens „MySQL-Front“ und / oder „HeidiSQL“ kommt immer auf den User-Case an z.B. ob gerade eine Excel-Datei oder ein sql-dump von ein mehreren GB importiert / exportiert werden soll.

    Eine richtige schöne Alternative für Linux habe ich leider bisher nicht gewunden :/ da bleibt mir meistens nur „MySQL Workbench“ -> http://alternativeto.net/software/heidisql/?platform=linux

    PS: wenn der Server keine Firewall hat und somit z.B. der Port 3306 nur auf localhost gebunden ist, dann kann man sich diesen auch ganz einfach via ssh umleiten -> z.B.: ssh -L 3307:localhost:3306 user@remotehost <- und sich anschließend in diesem Beispiel mit localhost:3307 verbinden

    Mfg Lars

    Antworten
    1. Tronde Beitragsautor

      Hallo Lars,

      unter Windows habe ich auch schon mit „HeidiSQL“ gearbeitet. Ein wirklich schönes Programm. Ich wünschte es würde davon auch eine Version für Linux geben.

      MfG
      Tronde

      Antworten
  2. Shogun

    Wenn nur ein einziger neuer Benutzer zum Zugriff auf die neue Datenbank benötigt wird, läßt sich das Anlegen des Benutzers und die Vergabe der Berechtigungen auch verkürzen:
    GRANT ALL ON db_name.* TO 'pusemuckel'@'localhost' IDENTIFIED BY 'password';
    Damit wird implizit der User angelegt und es werden gleichzeitig die angegebenen Berechtigungen vergeben.

    Antworten
  3. Pingback: Testinstanz für einen WordPress Blog erstellen | My-IT-Brain

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.