Wie man ein einzelnes Konto in einer zentralen Datenbank bereinigt (PDO)
Posted by Alex Wolf, Last modified by Alex Wolf on 26 June 2014 03:56 AM

WebClient Datenbank

Was ist PDO?

PDO bedeutet "PHP Data Object layer", welche für den Zugriff zu Datenbanken notwendig ist. 

Der IceWarp Server unterstützt SQLite, MySQL, und MSSQL (ODBC).  Der Webclient nutzt die Datenbank zum sammeln von Ordnern und Elementen.

 

Wo liegt das Problem?

In älteren Versionen von IceWarp gab es oftmals Probleme, welche die WebClient-Datenbank beschädigen konnte.  In den meisten Fällen tritt dies nur bei SQLite-Datenbanken auf. Für SQLite-Datenbanken ist die Fehlerbehebung denkbar einfach. Löschen Sie einfach die WebClient-Datenbank des betroffenen Benutzers. 

../icewarp/mail/domain_user/user/~webmail/cache.db

Bemerkung: Bedenken Sie, sollte der Postfachtyp des Benutzers auf POP3 eingestellt sein, gehen die Gelesen- und Ungelesenstatuse etc. verloren. Ändern Sie gegebenenfalls den Postfachtyp zu IMAP plus POP3 und führen Sie die Aktion erst danach durch.

Wie lösche ich den Cache für einen Benutzer in der WebClient-Datenbank (MySQL,MSSQL)?

Wenn eine zentrale Datenbank verwendet wird, gibt es keine einzelne Datenbank für jeden Benutzer wie mit SQLite. Alle Einträge aller Benutzer sind in einer Datenbank gespeichert. Als Administrator sind Sie in der Lage einzelne Konten aus dieser Datenbank zu löschen. 

Verbinden Sie sich als Administrator mit Hilfe eines SQL-Manager zu Ihrer WebClient-Datenbank. Sie können einen beliebigen SQL-Manager benutzen oder den integrierten in IceWarp (System ~ Tools ~ SQL-Manager).

Im nächsten Schritt verbinden wir uns zur WebClient-Datenbank. Im IceWarp SQL-Manager sollte der Administrator auf “Datenbank drücken...” klicken und die Informationen zur WebClient-Datenbank manuell und richtig eingeben. 

Jetzt müssen zwei Befehle ausgeführt werden. Bitte bedenken Sie, dass immer nur ein Befehl ausgeführt werden kann. Ändern Sie user@domain.com zu der richtigen Adresse des betroffenen Benutzers. 

  • 1 Befehl: Löschen der “Items” Tabelle:

delete from item where folder_id in (select folder_id from folder where account_id = 'user@domain');

 

Es ist absolut wichtig, dass zuerst die Items-Tabellen (Befehl 1) des Benutzers gelöscht werden!

Dieser Befehl muss erfolgreich verlaufen sein, damit Sie den nächsten Befehl ausführen können. Im anderen Fall können Rückstände in der Datenbank bleiben und somit wieder zu Fehlern führen.

Der Administrator kann den Befehl erneut ausführen, sollten Probleme aufgetreten sein.  Ist der Befehl erfolgreich verlaufen und es werden 0 Reihen angezeigt, haben Sie die Sicherheit, dass keine Daten des Benutzers in der Datenbank vorhanden sind.

 

 

  • 2 Befehl: Löschen der “folder” Tabelle

delete from folder where account_id = 'user@domain';

Überprüfen Sie nun, ob der Befehl erfolgreich verlaufen. Falls nicht, wiederholen Sie die Schritte mit dem Befehl wie vorher oben beschrieben.

Sobald beide Befehle erfolgreich durchgeführt wurden, alle Ordner und Elemente des Benutzers wurden gelöscht und bei der nächsten Anmeldung im WebClient wird der Cache des Benutzers neu aufgebaut. Ladezeiten können bei dieser Anmeldung etwas länger sein.

NOTIZ: Sofern der Benutzer eine permanente Session nutzt, muss diese vorher gelöscht werden und der Benutzer darf während der kompletten Aktion nicht im WebClient angemeldet sein. 

(1 vote(s))
Helpful
Not helpful

Comments (0)