[QuickTipp] phpMyAdmin Update-Script


Weil ich mir selten genügend Zeit nehme immer phpMyAdmin auf dem aktuellsten Stand zu halten, weil oft Updates veröffentlicht werden, kann ich an dieser Stelle ein kleines Bash-Script empfehlen, was die Aufgabe eindeutig einfacher gestaltet. Das – im Grunde einfache – Script aktualisiert einfach phpMyAdmin – mehr nicht, das aber dafür einwandfrei und zuverlässig. Die Einrichtung ist dabei auch sehr einfach.

Die ultimative Kombination, wie ich es aktuell im Einsatz habe, ist es dass Script über einen Cronjob automatisiert ausführen zu lassen. So wird mein phpMyAdmin immer stets aktuell gehalten, ohne jedesmal irgendwie selbst eingreifen zu müssen. Die Aktualisierung erfolgt natürlich auch nur dann, wenn es eine neuere Version als die derzeit installierte Version gibt.

Einrichtung des Scripts

cd /opt # Verzeichnis zu /opt wechseln
wget https://raw.githubusercontent.com/stefansl/pma-updatescript/master/pma-update.sh # Download
chmod +x pma-update.sh # Ausführrechte vergeben
nano pma-update.sh # Script bearbeiten und Variablen anpassen

Im Anschluss einfach die Variablen, die in der Datei genauer erläutert werden, anpassen und die Datei abspeichern. Die Ausführung erfolgt dann einfach mit ./pma-update.sh – oder aber mit ./pma-update.sh 3.5.0, um auf eine spezielle Version zu wechseln.

Einrichtung des Cronjobs
Die Zeile für den Cronjob (crontab -e) kann zum Beispiel wie folgt lauten:

30 4 * * * cd /opt/ && bash pma-update.sh >> /var/log/pma-update.log

In diesem Fall wird das Update-Script täglich um 04:30 Uhr ausgeführt und aktualisiert automatisch phpMyAdmin, falls es eine neuere Version geben sollte.

Das Script lässt sich auf GitHub unter github.com/stefansl/pma-updatescript finden.

Ein großer Dank für die Empfehlung des Scripts geht an php-friends.de! 🙂

QuickTipp: MySQL – Speicherplatzverbrauch der Datenbanken


Auflistung der MySQL-Datenbanken und deren Speicherplatzverbrauch

Ausgabe des SQL-Statements mit der Speicherplatzübersicht

Ohne große Erklärung oder viel Geschreibe – hier der Befehl zum Kopieren & Einfügen in die MySQL-Console:

mysql -u root -e -p 'select table_schema "Database",round(sum(data_length+index_length)/1024/1024,4) "Size (MB)" from information_schema.tables group by table_schema;'

Nach dem Einfügen und Ausführen des Befehls wird man nach dem Passwort des root-Nutzers gefragt. Nach der korrekten Eingabe erscheint dann eine schöne Übersicht, wie im Screenshot zu sehen ist, welche die Datenbanken und deren Speicherplatzverbrauch in einer Tabelle aufgelistet anzeigt. Alternativ kann man hinter den Parameter -p direkt das Passwort schreiben, um auf eine Eingabe nach der Ausführung zu verzichten.

Quelle: spielwiese.la-evento.com

MySQL & PHP: Vergleichen eines eingegebenen Passwortes mit ENCRYPT von MySQL


Ich stand gerade vor dem Problem, ein eingegebenes Passwort von einem HTML-Formular mit einer MySQL Datenbank zu vergleichen. Der Haken war jedoch, dass die Passwörter mit der ENCRYPT()-Funktion von MySQL verschlüsselt wurden.

Lässt man also ein Passwort in die MySQL Datenbank mit ENCRYPT(“passwort”) speichern, wird das Passwort zufällig verschlüsselt und wird bei so einen Beispiel-Vergleich mit PHP nie richtig sein:

mysql_query("SELECT password FROM users WHERE password=ENCRYPT('eingegebenes_passwort')")

Verzweifelt habe ich dennoch versucht, die Passwörter zu vergleichen.
Die Lösung war eigentlich einfach – wenn man es weiß…:

mysql_query("SELECT password FROM users WHERE password=ENCRYPT('eingegebenes_passwort', password)")

Das heißt, MySQL vergleicht – irgendwie – das eingebene mit dem vorhandenen Passwort und gibt danach das Passwort zurück, wenn das eingegebene Passwort richtig gewesen ist.

Ich hoffe es sparrt Euch viel Ärger und Nerven 🙂

Linux & MySQL: Backup per Konsole erstellen und einspielen


Mit zwei kurzen kurzen Linux Befehlen kann man seine MySQL Datenbank in eine SQL Datei speichern und auch wieder importieren lassen.

Backup erstellen:
mysqldump -u root -p --all-databases --result-file=dbdata.sql

Zum importieren:
mysql -u root -p < dbdata.sql

Sobald man den Befehl ausführt, muss man auch noch das Passwort des Benutzers angeben.
Achtung: Auch die Benutzer werden dabei dann exportiert und auch beim Import überschrieben!