• The new Python extension is now available. It allows customers to deploy and manage WSGI-based Python applications on their websites directly from Plesk.
  • Debian 11 has reached its end-of-life (vendor EOL date - August 31, 2026). Plesk Obsidian 18.0.81 is the last release to support it.
    If you are running Plesk Obsidian on Debian 11, we recommend you upgrade those servers to Debian 12 using our dist-upgrade tool.
  • We plan to deprecate and remove the support for XML RPC protocol versions earlier than 1.6.9.1 in Plesk Obsidian 18.0.82. We strongly recommend that you update all existing integrations using earlier versions of the XML RPC protocol to comply with the version 1.6.9.1 specification.

Error: PleskMainDBException

S

Steve.Gallant

Guest
Greetings:

I've been scratching my head trying to figure out the cause of the error (pasted below) when I attempt to access my PLESK interface. This error occurs before I get a change to log in.

At first I assumed this was caused by corruption in the psa database, but now I'm not sure. After examing the the database with unix's MYSQLCHECK PSA I can see all the tables listed, but the one referred to in the error "cl_param" doesn't exist... as the error indicates.

So, my question is: should this table exist? If so, how can I recover it? I have daily dump files I can use, but I am unsure of the commands to restore it. If the table isn't mean't to exist, why does the PHP3 file explicity refer to it?

Any help or advice would be GREATLY appreciated!

Many thanks,
Steve Gallant




----- Paste of error -----------------------------------------------------------

ERROR: PleskMainDBException


MySQL query failed: Table 'psa.cl_param' doesn't exist

--------------------------------------------------------------------------------

0: /usr/local/psa/admin/plib/common_func.php3:218
db_query(string 'select val from cl_param where param="itmpl_id" and cl_id='0'')
1: /usr/local/psa/admin/plib/common_func.php3:552
get_tparam(string 'itmpl_id', string 'cl_param', string 'and cl_id='0'')
2: /usr/local/psa/admin/plib/common_func.php3:567
get_cl_param(NULL null, string 'itmpl_id')
3: /usr/local/psa/admin/plib/visibility.php:355
getITmplID()
4: /usr/local/psa/admin/plib/visibility.php:232
getVisibilityCustomizations(string '/login_up.php3')
5: /usr/local/psa/admin/plib/visibility.php:467
getVisibility(string 'login', boolean true, NULL null)
6: /usr/local/psa/admin/plib/visibility.php:476
isControlVisible(string 'login', boolean true)
7: /usr/local/psa/admin/plib/elements.php3:414
fetch_hideable_button(array)
8: /usr/local/psa/admin/plib/elements.php3:324
comm_button(string 'login', string '', string 'return login_oC(document.forms[0], document.forms[1])', boolean true, integer '3')
9: /usr/local/psa/admin/plib/LoginForm.php:101
LoginForm->assign()
10: /usr/local/psa/admin/htdocs/login_up.php3:160
 
Hi,

If command is referring to it then table must exist. Have you upgraded Plesk on your server recently?
As for now you can try running the following command:

mysql -uadmin -p`cat /etc/psa/.psa.shadow` psa
select * from cl_param limit 5;

It will either say that table does not exists or is corrupted.
If the table does not exist you can try importing it from Plesk database dumps:
1. cd /var/lib/psa/dumps
2. Exctact and open one of recent database dumps in text editor.
3. In text editor search for string like 'create database cl_param' - if you find it you will see command for database creation and insert command used to put data into database - copy these commands.
4. Create new file, let's name if clparam.sql and paste commands from step 3.
5. Import data to mysql:

mysql -uadmin -p`cat /etc/psa/.psa.shadow` psa
source clparam.sql
 
Back
Top