Auf Parallels Plesk kann nicht zugegriffen werden; Fehler: SQLSTATE: Column not found/Base table or view not found

Created:

2016-11-16 12:59:58 UTC

Modified:

2017-08-17 15:00:31 UTC

0

Was this article helpful?


Have more questions?

Anfrage einreichen

Auf Parallels Plesk kann nicht zugegriffen werden; Fehler: SQLSTATE: Column not found/Base table or view not found

Applicable to:

  • Plesk 12.0 for Linux
  • Plesk 11.0 for Linux
  • Plesk 11.5 for Linux
  • Plesk 10.1 for Linux/Unix
  • Operations Automation 6.x
  • Operations Automation 5.x

Kennzeichen

Das Laden von Parallels Plesk schlägt nach einem Upgrade fehl. Beim Anmeldeversuch kann folgende Fehlermeldung erscheinen:

    Unknown column ipAddress in where clause

oder:

    ERR (3)  [panel]: SQLSTATE[42S02]: Base table or view not found: 1146 
    Table 'psa.table_name' doesn't exist

oder:

 SQLSTATE[42S22]: Column not found: 1054 Unknown column 'DomainId' in 'where clause'   

Beim Versuch, eine Domain oder ein Abonnement zu öffnen, erscheint unter Umständen folgender Fehler:

ERROR: Call to a member function capability() on a non-object (SubscriptionController.php:1144)

Ursache

Im Allgemeinen schlägt ein Upgrade fehl, wenn Paket-Abhängigkeiten oder Unstimmigkeiten in der Vor-Upgrade-Installation vorliegen oder zuvor Upgrade-Versuche fehlgeschlagen sind.

In diesem Artikel finden Sie eine allgemeine Anleitung zur erneuten Durchführung des Upgrades, damit die eigentliche Ursache gar nicht erst auftreten kann. Diese sollte basierend auf den Protokolldateien und der Ausgabe des Upgrade-Skripts bestimmt werden.

Lösung

Nachfolgend finden Sie die Schritte, mit denen Sie ein fehlgeschlagenes Upgrade noch einmal von Anfang an starten:

  1. Erstellen Sie einen Snapshot der aktuellen Datenbank – sie mag vielleicht inkonsistent sein (teilweise upgegradet), aber kann erforderlich sein, falls etwas unerwünscht läuft:

    # mysqldump -uadmin -p`cat /etc/psa/.psa.shadow` --quote-names --database psa > current.sql
    
  2. Suchen Sie ein Vor-Upgrade-Abbild der 'psa' -Datenbank im Verzeichnis '/var/lib/psa/dumps/' :

    # ls -l /var/lib/psa/dumps/mysql.preupgrade*
    -rw-------  1 root root 78771 Oct 11 16:56 /var/lib/psa/dumps/mysql.preupgrade.dump.gz
    -rw-------  1 root root 78452 Oct 11 16:32 /var/lib/psa/dumps/mysql.preupgrade.dump.gz.1
    -rw-------  1 root root 78320 Oct 11 16:07 /var/lib/psa/dumps/mysql.preupgrade.dump.gz.2
    -rw-------  1 root root 65351 Oct  7 02:09 /var/lib/psa/dumps/mysql.preupgrade.dump.gz.3
    -rw-------  1 root root 45632 Aug  3 12:39 /var/lib/psa/dumps/mysql.preupgrade.dump.gz.4
    -rw-------  1 root root 43245 Aug  3 00:19 /var/lib/psa/dumps/mysql.preupgrade.dump.gz.5
    -rw-------  1 root root 51235 Jun 12 12:19 /var/lib/psa/dumps/mysql.preupgrade.dump.gz.6
    

    Der am besten geeignete Snapshot der Datenbank ist für gewöhnlich das älteste Abbild aus dem Block von Abbildern, die am nächsten an das aktuelle Datum heranreichen (in unserem Fall wäre dies '/var/lib/psa/dumps/mysql.preupgrade.dump.gz.2' ).

  3. Extrahieren Sie die 'psa'-Datenbank mithilfe des nachfolgend aufgeführten Befehls aus dem Abbild:

    3.1. Wenn ein Upgrade von einer 10.3-er oder neueren Version durchgeführt wurde, sollten Sie sowohl die Datenbank 'psa' als auch 'apsc' wiederherstellen:

    # zcat /var/lib/psa/dumps/mysql.preupgrade.dump.gz.2 | sed -n '/^CREATE DATABASE.*psa/,/^CREATE DATABASE.*apsc/p' > preupgrade_psa.sql
    # zcat /var/lib/psa/dumps/apsc.preupgrade.dump.gz.2 > preupgrade_apsc.sql
    

    3.2. Wenn ein Upgrade von einer Version vor 10.3 durchgeführt wurde, ist nur die 'psa' -Datenbank erforderlich:

     # zcat /var/lib/psa/dumps/mysql.preupgrade.dump.gz.2 | sed -n '/^CREATE DATABASE.*psa/,/^CREATE DATABASE.*horde/p' > preupgrade.sql
    
  4. Überprüfen Sie die Version des 'psa' - und des 'plesk-core' -Pakets:

    rpm -q plesk-core psa
    

    Wenn die Pakete bereits upgegradet wurden, müssen Sie die Vor-Upgrade-Versionen von http://autoinstall.plesk.com/PSA_<alte_plesk_version>/<build_der_os-version>/base/ herunterladen und ihre Installation erzwingen:

    rpm -Uvh --force --nodeps <name_des_pakets>
    

    Sollten zwei 'psa' -RPMs installiert sein, entfernen Sie das neuere wie folgt:

    # rpm -e --nodeps --noscripts --justdb <paket>
    
  5. Korrigieren Sie die Dateien '/usr/local/psa/version' und '/usr/local/psa/core.version' .

    Stellen Sie dort die alten Versionen ein. Die Build-Nummern sollten dem zugehörigen Bootstrapper-Paket entnommen werden. Zum Beispiel: Wenn Sie folgende Plesk Pakete installieren: plesk-core-11.5.30-cos6.build115130819.13.x86_64.rpm , psa-11.5.30-cos6.build115130819.13.x86_64.rpm , sollte die Datei 'version' Folgendes enthalten: 11.5.30 CentOS 6 115140407.17 (Build-Version, die aus dem jüngsten Bootstrapper-Paket entnommen werden kann: pp11.5.30-bootstrapper-11.5.30-cos6.build115140407.17.x86_64.rpm ). Die Datei 'core-version' sollte die Version des Core-Pakets enthalten.

  6. Verwerfen Sie die aktuelle 'psa' - und 'apsc' -Datenbank und stellen Sie Ihr Vor-Upgrade-Abbild wieder her:

    # echo "DROP DATABASE psa" | mysql -uadmin -p`cat /etc/psa/.psa.shadow`
    # cat preupgrade_psa.sql | mysql -uadmin -p`cat /etc/psa/.psa.shadow`
    # echo "DROP DATABASE apsc" | mysql -uadmin -p`cat /etc/psa/.psa.shadow`
    # cat preupgrade_apsc.sql | mysql -uadmin -p`cat /etc/psa/.psa.shadow`
    
  7. Beheben Sie das Problem, das das Upgrade beim ersten Mal fehlschlagen lassen hat. Dieser Vorgang ist nicht Gegenstand dieses Artikels. Aber Sie können nützliche Informationen in den Upgrade-Protokollen im Verzeichnis /tmp finden.

  8. Laden Sie das 'psa' - und das 'plesk-core' -Paket der Version herunter, auf die Sie upgraden wollten und installieren Sie die Pakete mit 'rpm -Uvh --force' . Diese Aktion initiiert das Datenbank-Upgrade. Sollte dies fehlschlagen, müssen Sie die Ursache beheben, alles wie in den vorherigen Schritten zurücksetzen und den hier genannten Schritt wiederholen.

  9. Starten Sie das Dienstprogramm 'bootstrapper' :

    /usr/local/psa/bootstrapper/pp12.0.18-bootstrapper/bootstrapper.sh --prep-install
    /usr/local/psa/bootstrapper/pp12.0.18-bootstrapper/bootstrapper.sh --rerun
    
  10. Zum Wiederherstellen der Konfigurationsdateien der Web-, E-Mail- und DNS-Services müssen Sie folgenden Befehl aufrufen:

    plesk bin repair --run
    
  11. Rufen Sie folgenden Befehl auf:

    /usr/local/psa/admin/bin/autoinstaller --select-release-current --upgrade-installed-components
    
Haben Sie Fragen? Anfrage einreichen
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.