Kontrollcharakter(?) in Pleskdatenbank

marneus

Registered User
Moin zusammen!

Ich wollte heute gemütlich mein Plesk auf einen Testserver migrieren zwecks Neuinstallation meiner SuSe 9.3 Kiste. Nachdem ein erstes Backup mittels pleskbackup fehlschlug, wollte ich heute den Migrationsmanager nutzen.

Dies schlug ebenfalls fehl, jedoch mit einer "besseren" Fehlermeldung. Bei der Fehlersuche habe ich festgestellt, dass meine psa Datenbank zum Teil "verseucht" ist mit Kontrollcharakter "\0". Plesk selber funktioniert auf der alten Kiste im Prinzip einwandfrei. Aufgefallen ist mir das erst, als ich einen DB-Usernamen manuell ändern wollte bzw. eben noch mal drastisch, als die Migration fehlschlug.

Ein Beispieldatensatz sieht übrigens so aus:
Code:
SELECT  * 
FROM  `psa`.`Permissions` 
WHERE  `Permissions`.`id`  =1
AND CONVERT(  `Permissions`.`permission` 
USING utf8 )  =  'cp_access��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������';
Die � stehen für \0.

Ich habe eben probiert, ob ich nicht mittels
Code:
UPDATE Permissions SET permission = REPLACE(permission,'\0','');
die Datensätze bereinigen könnte. Würde theoretisch wohl auch gehen, aber z.B. in diesem Fall meckert mySQL weil ich eine Foreign Key Exception mit der Änderung auslösen würde.

Bin also ein wenig ratlos, wie ich nun weiter vorgehen soll. Jeder Tipp wird dankbar entgegen genommen.

Grüße,
--marneus
 
Das Problem ist, dass Plesk wohl beim damaligen Updaten auf Plesk 8 und der Installation von mySQL 5 die Charsets verhauen hat. Jedenfalls ist in der Plesk Datenbank größtenteils die Kollation latin1-swedish-ci eingestellst, was ja bekannterweise Standard war/ist.

Ein manuelles Umstellen auf UTF-8 bringt mich wahrscheinlich auch nicht ans Ziel, oder?

--marneus
 
Naja du kannst natürlich auch alternativ mal testen ob du nicht einfach n MySQL Dump normal machst und dann vielleicht einfach per find&replace die Charsets ersetzt. Dann könntest du das Dump komplett auf den neuen Server einspielen.
Ist aber nur Idee kann nicht sagen obs klappt oder nicht, ich denke aber mal schon

Grüße
Chris
 
Vielen Dank für Deine Antwort, Chris.

Das könnte man versuchen, jedoch kann ich dann das Backup nicht einspielen via MigrationsManager. Das ist (noch) mein Ziel, da ja auch Mailkonten etc.pp. mit migriert werden.

Ich hab jetzt alle 192 Tabellen durch und es hakt nur noch an der Prozedur mit den Foreign Keys.

Grüße,
Henning
 
Dann machs doch am besten andersrum.
Migrier komplett, lösche die Datenbanken und spiele dann das Dump ein das du vorher bearbeitet hast ;)

Grüße
Chris
 
Bei mir war neben den Kontrollcharakteren auch die Konsistenz der psa DB über den Haufen. Wie auch immer Plesk das geschafft hat. Manuell hab ich jedenfalls nicht in der psa-DB rumgespielt.

So, Du hast mir den simplen, aber zielführenden Ansatz geliefert. Falls jemand mal über ein ähnliches Problem stolpert:

  1. Dump auf den Rechner ziehen mit DROP IF EXISTS
  2. Mit einem gescheiten Editor öffnen und die überflüssigen Kontrollcharaktere löschen
  3. Versuchen Dump einzuspielen. Wenn es ohne Fehler geht, Glückwunsch, wenn nicht, die Fehlermeldung sorgfältig lesen.
  4. Ansonsten Dump wieder einspielen.
Bei mir waren in mehreren Tabellen unique Keys doppelt, die ich von Hand entfernen musste. Mit ein wenig Überlegen weiß man auch, welches der doppelte Key ist / kann es erkennen.

Vielen Dank Chris für den Wegweiser.

--marneus

Ich weiß nicht, ob ich über den Berg bin, aber der Migration Manager läuft
 
Back
Top