Zum Inhalt springen
Der Guide für ein smartes Leben.
Tolles aus der MySQL-Trickkiste

Teil 2: MySQL und phpMyAdmin

Autoren: Redaktion pcmagazin und Tobias Hauser • 12.11.2008 • ca. 2:50 Min

Prozesse feststellen Manchmal hängen sich einzelne Prozesse auf oder sorgen für deutliche Performance-Einbußen. Hier müssen Sie zuerst einmal das Problem herausfiltern. Die laufenden Prozesse finden Sie in phpMyAdmin im Register Prozesse. Dort sehen Sie Nutzer, die auf die Datenbanken zugreife...

Prozesse feststellen

Manchmal hängen sich einzelne Prozesse auf oder sorgen für deutliche Performance-Einbußen. Hier müssen Sie zuerst einmal das Problem herausfiltern. Die laufenden Prozesse finden Sie in phpMyAdmin im Register Prozesse. Dort sehen Sie Nutzer, die auf die Datenbanken zugreifen und welche Befehle gerade laufen. Dieses Ergebnis erhalten Sie auch mit dem Befehl SHOW PROCESSLIST.

Special MySQL und phpMyAdmin: MySQL
Kontaktaufnahme: Die Konsole als Schnittstelle zu MySQL.
© Archiv

Sie können im phpMyAdmin auch einen Prozess abbrechen. Wollen Sie das direkt über die MySQL-Konsole tun, verwenden Sie KILL mit der Prozess-ID danach.

Erstellten SQL-Code bearbeiten

phpMyAdmin liefert für die Operationen, die man über die Oberfläche steuern kann, direkt SQL-Code. Diesen Code können Sie natürlich kopieren und auch bearbeiten. Beim Klick auf Bearbeiten erhalten Sie ein neues Fenster mit der SQL-Anzeige, die Sie auch im Register SQL finden.

Wenn Sie das Kontrollkästchen Messen aktivieren, wird die Geschwindigkeit der Anfrage angezeigt. Vorsicht, sollten Sie es bei einer Einfügeoperation auswählen, wird die Operation noch einmal durchgeführt. Bei gleichen Werten für den Primärschlüssel sorgt das für einen Fehler.

Special MySQL und phpMyAdmin: MySQL
Informativ: Die Status-Informationen verraten einiges über die Abfragen.
© Archiv

Auch wenn ein Fehler aufgetreten ist, haben Sie immer ein Bearbeitungssymbol zur Verfügung, mit dem Sie direkt auf den SQL-Code Einfluss nehmen können. Beim Löschen erhalten Sie übrigens vor dem SQL- Code noch eine vorherige Abfrage, ob Sie sich sicher sind.

PHP-Code erzeugen

Neben dem Bearbeiten können Sie mit dem SQL-Code im phpMyAdmin noch mehr machen: über den Link PHP-Code erzeugen produzieren Sie eine Variable mit dem SQL-Code als String:

Der Abfragecode ist in der Datei common.inc.php von phpMyAdmin hardcodiert. Sprich, den Variablennamen können Sie nicht ohne erheblichen Eingriff ändern. Ob der PHP-Code angezeigt wird, steuern Sie über den URL- Parameter show_as_php. Wenn Sie im Skript danach suchen (oder genauer $GLOBALS['show_as_php']), finden Sie die Stellen, an denen der PHP-Code zum SQL- Statement hinzugefügt wird.

$sql = 'CREATE TABLE internetmagazin.
autoren (id INT NOT NULL, name
VARCHAR(255) NOT NULL, PRIMARY KEY
(id)) ENGINE =
MyISAM';

Datenbanken umbenennen

MySQL bietet per SQL keine einfache Möglichkeit, eine Datenbank umzubenennen. RENAME war auf Datenbankebene für einige Unterversionen in 5.1 aktiviert, wurde dann aber aus Sicherheitsgründen wieder gestrichen. Sie müssen also statt des einfachen Umbenennens eine neue Datenbank mit dem gewünschten Namen anlegen, alle Tabellen darin erstellen und die Daten einfügen. Zu guter Letzt sollten Sie die alte Datenbank löschen. In phpMyAdmin verbirgt sich eine Funktion, die genau das tut, ohne dass Sie sich selbst um den SQL-Code kümmern müssten. Wechseln Sie dazu auf die Datenbank und dann auf das Register Operationen. Sie müssen hier nur den neuen Datenbanknamen eintragen und bestätigen. Der verwendete SQL-Code wird wie gewohnt ausgegeben.

Kopieren per phpMyAdmin

Der SQL-Code zum Kopieren einer Datenbank ist recht umständlich. Auch hier hält phpMyAdmin eine Möglichkeit in den Operationen bereit. Wählen Sie dazu die Datenbank aus und dann im Register Operationen. Bei Datenbank kopieren nach geben Sie den Namen der gewünschten Datenbank ein und wählen Struktur und Daten. Sie können auch auswählen, ob die Datenbank neu angelegt werden soll. Bei vielen Hostern und kleineren Webspaces haben Sie dieses Recht allerdings nicht und müssen die Datenbank gegebenenfalls vorher über das Kundenmenü erstellen.

Das Kopieren im phpMyAdmin klappt allerdings auch auf Tabellen-Ebene. Auch hier werden Sie im Register Operationen fündig. Als Erstes wählen Sie eine Zieldatenbank. Beim Kopieren können Sie dann wählen, was alles kopiert wird: die Struktur, die Daten oder beides. Mit weiteren Optionen haben Sie noch Einfluss auf das SQL-Statement. DROP TABLE sorgt beispielsweise dafür, dass die Zieltabelle erst gelöscht wird, falls sie existiert.

Ebenfalls verfügbar ist das Verschieben von Tabellen. Der Unterschied zum Kopieren besteht aus SQL- Sicht nur darin, dass die Ursprungstabelle gelöscht wird. Das Verschieben betrifft logischerweise Daten und Struktur der Tabelle. Wollen Sie nur die Struktur einer Tabelle übernehmen und das Original entfernen, benötigen Sie zwei Operationen: zuerst kopieren Sie, dann löschen Sie das Original.