Plesk Obsidian 18.0.79 update deletes the main remote database
administrator when the legacy APSC account shares the same username.
The remote Plesk database uses plesk_db_admin for all DSN sections.
The upgrade function drop_user_database_apsc() reads the username from:
SELECT val FROM misc WHERE param = 'aps_login'
It then executes db_drop_user() for that username, which drops all matching
MySQL/MariaDB accounts.
Because misc.aps_login contained plesk_db_admin, the updater deleted the main
Plesk database administrator. The following FLUSH PRIVILEGES and all subsequent
post-install actions failed with ERROR 1045.
The upgrade cannot recover because deletion of misc.aps_login occurs only after
db_drop_user(), but database access is already lost at that point.
Workaround:
UPDATE misc SET val='nonexistent_dummy_user' WHERE param='aps_login';
restore plesk_db_admin;
run Plesk repair again.
Expected behavior:
The updater must not drop the APSC username if it is also used as the main Plesk
database administrator, or it must remove the misc metadata before dropping the
account.
administrator when the legacy APSC account shares the same username.
The remote Plesk database uses plesk_db_admin for all DSN sections.
The upgrade function drop_user_database_apsc() reads the username from:
SELECT val FROM misc WHERE param = 'aps_login'
It then executes db_drop_user() for that username, which drops all matching
MySQL/MariaDB accounts.
Because misc.aps_login contained plesk_db_admin, the updater deleted the main
Plesk database administrator. The following FLUSH PRIVILEGES and all subsequent
post-install actions failed with ERROR 1045.
The upgrade cannot recover because deletion of misc.aps_login occurs only after
db_drop_user(), but database access is already lost at that point.
Workaround:
UPDATE misc SET val='nonexistent_dummy_user' WHERE param='aps_login';
restore plesk_db_admin;
run Plesk repair again.
Expected behavior:
The updater must not drop the APSC username if it is also used as the main Plesk
database administrator, or it must remove the misc metadata before dropping the
account.