How To Solve DNS Page Error In Plesk?

September 13, 2011 / CMS

You get different types of errors while using the Plesk control panel, but the most common error is “error on DNS page”. You can solve this error with some simple steps. You get the error “ERROR: PleskException”, when you are on Plesk. In that situation, if you make any changes within the DNS page, then you get the following Error :

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

Or

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

The cause of the error is that in psa.domains Plesk mysql table dns_zone_id record points to nonexistent id record in psa.dns_zone table for one or different domains. It may occur because of Plesk internal problems, a broken database, or incomplete domain deletion.

The users have to login into MySQL server console to make some important changes.

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

and discover domains that have missed ID:

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

For every reported domain, ensure the following procedure :
The user has to create an appropriate id within the records with the commands mentioned below. Make a note that you will have to replace ‘Domain Name’ with the actual domain URL and you will also have to change the admin email with the correct email.

  1. The users have to make proper id records with the following commands. You have to keep in mind to replace “DOMAIN-NAME” with an original domain name and also “ADMIN-EMAIL” with the correct email:
    mysql> INSERT INTO dns_zone SET name=’DOMAIN-NAME’, displayName=’DOMAIN-NAME’, email=’ADMIN-EMAIL’;
  2. Way to find out new zone ID:
    mysql> SELECT id, name FROM dns_zone ORDER BY id DESC LIMIT 1;
  3. Substitute the correct ID into psa.domains table. You have to keep in mind to replace “DOMAIN-ID” and also “DOMAIN-NAME” with the correct values:
    mysql> UPDATE domains SET dns_zone_id=’DOMAIN-ID’ WHERE name=’DOMAIN-NAME’;

After that you have to login into Plesk, for each corrected domain go to domain.com > DNS and utilize the Default option to re-generate DNS records. It would have solved the error in Plesk.

Leave a Reply

Your email address will not be published. Required fields are marked *