DNS-Seite in Plesk zeigt einen Ausnahmefall: Table::select() failed: no such row in the table

Refers to:

  • Plesk 11.5 for Windows
  • Plesk
  • MT:234ea1b9d7c943fa35fffc7eb3e7cab2
  • MG:45158a7b7a7328ab7ea4baab33289e24
  • MT:bb058b0e02e38ad4916b120dac51c796

Created:

2016-11-16 12:57:35 UTC

Modified:

2017-02-13 06:36:02 UTC

0

Was this article helpful?


Have more questions?

Anfrage einreichen

DNS-Seite in Plesk zeigt einen Ausnahmefall: Table::select() failed: no such row in the table

Kennzeichen

Die Kennzeichen können variieren. Zum Beispiel:

  • Plesk Domains werden in HSPcomplete hinzugefügt, aber die DNS-Zonen werden nicht automatisch in den HSPcomplete Name Servern erstellt.
  • Die Domain wird in Plesk gelöscht, aber ist nicht vollständig gelöscht und es wird ein Ausnahmefehler angezeigt.
  • Sie erstellen eine Domain, aber das Hosting wird nicht erstellt und es wird ein Fehler angezeigt.

Die volle Fehlermeldung sieht wie folgt aus:

ERROR: PleskException
Table::select() failed: no such row in the table

0: /usr/local/psa/admin/plib/dns/DNSZone.php:52
DNSZone->DNSZone(string '100')
1: /usr/local/psa/admin/plib/common_func.php3:2610
objectMaker(string 'DNSZone', string '100')
2: /usr/local/psa/admin/plib/dns/DNSManager.php:39
DNSManager::getDNSZone(string '100')
3: /usr/local/psa/admin/htdocs/domains/dns.php:21

Unter Plesk für Windows lautet der Fehler anders und wird ebenfalls in den Operationen für die Domainverwaltung angezeigt (sperren/fortsetzen/löschen):

Error: DNSZone::Table::select() failed: no such row in the table

Ursache

In psa.domains verweist der Eintrag dns_zone_id der Plesk MySQL-Tabelle für eine oder mehrere Domains auf einen nicht vorhandenen ID-Eintrag der Tabelle psa.dns_zone . Mögliche Gründe sind ein internes Plesk Problem, eine fehlerhafte Datenbank, die unvollständige Löschung einer Domain, eine fehlerhafte Bereitstellung von HSPcomplete auf dem Plesk Server, sowie andere Gründe.

Lösung

Hinweis: Die nachfolgende Lösung gilt für Linux. Sie kann jedoch auf gleiche Weise auf einen Windows Server angewendet werden. Beachten Sie aber, dass der Zugriff auf die psa-Datenbank anders aussehen wird.

Zuerst müssen Sie eine passende Zone in der Tabelle psa.dns_zone erstellen. Melden Sie sich bei der Plesk Datenbank an:

# mysql -uadmin -p`cat /etc/psa/.psa.shadow` -Dpsa

Finden Sie die Domains mit fehlenden IDs heraus:

mysql> SELECT d.name FROM domains d LEFT JOIN dns_zone z ON d.dns_zone_id=z.id WHERE z.id IS NULL;

Führen Sie anschließend für jede ermittelte Domain Folgendes aus:

  1. Erstellen Sie entsprechende ID-Einträge mithilfe der folgenden Befehle. Achten Sie darauf, <"DOMAIN-NAME"> mit dem echten Domainnamen und <"ADMIN-EMAIL"> mit der richtigen E-Mail-Adresse zu ersetzen:

    mysql> INSERT INTO dns_zone (name, displayName, email) VALUES ('<DOMAIN-NAME>', '<DOMAIN-NAME>', '<ADMIN-EMAIL>');
  2. Bestimmen Sie die neue Zonen-ID:

    mysql>  SELECT id, name FROM dns_zone where name='<DOMAIN-NAME>';
  3. Setzen Sie die korrekte ID in die Tabelle psa.domains ein und achten Sie dabei darauf, <"DOMAIN-NAME"> und <"DNS-ZONE-ID"> durch die korrekten Werte zu ersetzen:

    mysql> UPDATE domains SET dns_zone_id='<DNS-ZONE-ID>' WHERE name='<DOMAIN-NAME>';

Melden Sie sich anschließend bei Plesk an. Für jede korrigierte Domain gehen Sie zu Start > Domains > <"DOMAIN-NAME"> > Websites & Domains > DNS und verwenden die Schaltfläche Default ("Standard"), um die DNS-Einträge neu zu generieren. Alternativ können Sie folgenden Befehl aufrufen:

    "%plesk_cli%\\dns.exe" --reset <DOMAIN-NAME> -ip <IP_address>

Danach erscheint der Fehler nicht mehr. Nun können Sie die Aktion, die durch den Fehler unterbrochen wurde, wiederholen: Domainlöschung durchführen, DNS mit HSPcomplete synchronisieren oder Ähnliches.

HINWEIS: Es ist unbedingt zu empfehlen, alle Plesk Komponenten auf die neuesten verfügbaren Builds zu aktualisieren. Diese beinhalten Patches zur Verhinderung dieser Probleme.

Haben Sie Fragen? Anfrage einreichen
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.