Fehlermeldung bei Froxlor – MySQL error occurred

Dieses Problem hat mich jetzt lange aufgehalten und endlich habe ich die Lösung darauf gefunden. Schuld daran war bei mir allerdings nicht einmal Froxlor selbst, sondern ein MySQL Update, welches per „apt-get“ installiert wurde (weitere Infos dazu folgen).

We are sorry, but a MySQL - error occurred. The administrator may find more
information in syslog with the ID 8d2cddd6d5e3b2be8ab12998a5d1ab18

Die Meldung erscheint bereits vor dem Einloggen in Froxlor:

Dies deutet darauf hin, dass entweder ein Problem beim MySQL-Dienst besteht (wahrscheinlichste Variante) oder dass die Zugangsdaten des MySQL-Benutzers „froxlor“ im Konfigurationsfile falsch eingetragen sind.

Zunächst sollte also der MySQL-Dienst auf Funktionalität überprüft werden. Dazu kann man kurz das Shellscript des MySQL-Dienstes mit dem Parameter „start“ aufrufen. Läuft der Dienst, so sollte folgende Ausgabe erscheinen.

root@tux1:~# /etc/init.d/mysql start
Starting MySQL database server: mysqld already running.

Wie bereits erwähnt, kann es aber auch am MySQL-Benutzer „froxlor“ liegen. Das betreffende Konfigurationsfile liegt bei einer Standardinstallation Froxlors im Ordner „/var/www/froxlor/lib/userdata.inc.php“. Der Inhalt dieses Files sollte wie folgt aussehen:

//automatically generated userdata.inc.php for Froxlor
$sql['host']='127.0.0.1';
$sql['user']='froxlor';
$sql['password']='XXXX';
$sql['db']='froxlor';
$sql_root[0]['caption']='Default';
$sql_root[0]['host']='127.0.0.1';
$sql_root[0]['user']='root';
$sql_root[0]['password']='ZZZZ';

Die Meldung erscheint erst nach dem Einloggen in Froxlor, nämlich wenn ein Froxlor-User eine neue Datenbank anlegen möchte:

Dieses Symptom weist darauf hin, dass sich das Passwort des Benutzers „root“ geändert hat und/oder ein falsches Passwort im zuvor erwähnten Konfigurationsfile eingetragen ist. Zum Überprüfen des Passworts, kann in der Shell eine einfache Abfrage auf dem Server abgesetzt werden.

root@Server:~# mysql -u root -p
Enter Password:
mysql> SHOW TABLES FROM froxlor;

Sollte das Einloggen scheitern, ist der Fall klar: Das Rootpasswort stimmt nicht!

Dies kann passieren, wenn nach einem Update das Passwort des root-Users in MySQL neu gesetzt werden muss. Die Lösung ist dann relativ einfach: Das Passwort muss neu gesetzt und im Konfigurationsfile von Froxlor eingetragen werden (oben erwähntes File). Das Root Passwort lässt sich wie folgt neu setzen:

root@Server:~# /etc/init.d/mysql stop
root@Server:~# mysqld_safe --skip-grant-tables --user=root --skip-networking & root@Server:~# mysql -u froxlor
mysql>FLUS PRIVILEGES;
mysql>CREATE USER root;
mysql>SET PASSWORD FOR root = PASSWORD('*****');
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '*****' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
mysql>FLUS PRIVILEGES;
mysql>QUIT
root@Server:~# /etc/init.d/mysql restart

Wenn das Problem weiternhin besteht, sollte Froxlor auf die aktuellste Version aktualisiert werden. Viele Fehler lassen sich mit einem einfachen Update lösen.
Ansonsten findet man noch diverse andere Patches und Lösungsansätze im offiziellen Bugtracker von Froxlor:
http://redmine.froxlor.org/projects/froxlor

Verwendete Versionen: Debian 6 Squeeze, Froxlor 0.9.28-svn5, PHP 5.3.3-7+squeeze15, MySQL 5.1.66-0+squeeze1