參考:http://kb.parallels.com/en/1360

Symptoms may differ. For example(三種主要狀況所引起):

  • Parallels Plesk Panel (hereafter Plesk) domains are added in HSPcomplete: the DNS zones are not created in the HSPcomplete name servers automatically.
  • The domain is deleted in Plesk: it is not deleted completely, but an exception is shown.
  • You create a domain: hosting is not created, but an error is shown.

The complete error looks like the following:

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

On Plesk for Windows, the error is different and is also shown in the domain management operations (suspend/resume/delete domain):

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

Cause

The reason for the error is that in psa.domains, the Plesk mysql table dns_zone_id record points to a nonexistent ID record in the psa.dns_zone table for one or several domains. This may occur because of internal Plesk issues, a broken database, incomplete domain deletion, incorrect provisioning from HSPcomplere to the Plesk server, etc.

Resolution

Note: The solution below is demonstrated for Linux; however, it can be applied in the same way for a Windows server. Note that accessing the psa database will look differently.

You need to create an appropriate zone in the psa.dns_zone table first. Log in to the Parallels Plesk database:

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

Find the domains that have missing IDs:

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

Then for each reported domain, do the following:

  1. Create appropriate ID records with the following commands. Do not forget to replace <"DOMAN-NAME"> with the real domain name and <"ADMIN-EMAIL"> with the correct email:

    mysql> INSERT INTO dns_zone (name, displayName, email) VALUES ('<DOMAIN-NAME>', '<DOMAIN-NAME>', '<ADMIN-EMAIL>');
    
  2. Determine the new zone ID:

    mysql>  SELECT id, name FROM dns_zone where name='<DOMAIN-NAME>';
    
  3. Substitute the correct ID into the psa.domains table, and don't forget to replace <"DOMAN-NAME"> and <"DNS-ZONE-ID"> with the correct values:

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

Then log in to Plesk Panel. For each corrected domain, go to Home > Domains > <"DOMAIN-NAME"> > Website & Domains > DNS and use the Default button to re-generate DNS records. After this, the error disappears. Now you will be able to repeat the action that was interrupted by the error: do domain deletion or synchronize DNS to HSPcomplete or something else.

NOTE: It is highly recommended to update Plesk components to the latest available builds, which have fixes included that prevent such problems.

文章標籤
創作者介紹
創作者 NetPC虛擬主機 的頭像
NetPC虛擬主機

NetPC虛擬主機的部落格

NetPC虛擬主機 發表在 痞客邦 留言(0) 人氣()