Article ID: 117727, created on Nov 5, 2015, last review on Nov 5, 2015

  • Applies to:
  • Plesk

Symptômes

  1. Si j'essaie d'ouvrir un abonnement depuis Haut > Abonnements > exemple.com > Gérer l'hébergement ou si j'essaie d'ouvrir l'onglet Haut > Domaines > exemple.com > Sites Web & Domaines, alors l'erreur suivante s'affiche :

    Internal error: Unable to load object of type SysUser with id=370: 
    SysUser: unable to select: no such row in the table
    

Cause

Cette erreur provient d'une incohérence de la base de données. Prenons le cas ci-dessus : dans la table psa.sys_users, il n'y a pas d'entrée correspondant à id=370.

Résolution

  1. Trouvez le nom d'utilisateur du domaine sys_user et les paramètres du système. Utilisez le nom de domaine (example.com) pour rechercher dans le fichier /etc/passwd :

    ~# grep 'example.com' /etc/passwd
    exampleuser:x:10007:503::/var/www/vhosts/example.com:/bin/false
    
  2. Créez un nouvel enregistrement dans la table account pour cet utilisateur :

    a. Saisissez la commande "plesk db" pour l'utilisateur root dans le shell afin de vous connecter à la base de données Plesk.

    b. Exécutez les requêtes suivantes :

    mysql> select @id:= (select MAX(id) + 1 FROM accounts);
    +------------------------------------------+
    | @id:= (select MAX(id) + 1 FROM accounts) |
    +------------------------------------------+
    |                                       15 |
    +------------------------------------------+
    
    mysql> insert into accounts values (@id,"plain","1qazXSW@");
    
  3. Insérez les données dans la table psa.sys_users et utilisez les valeurs suivantes :

    • id : ID de l'utilisateur. Utilisez l'ID indiqué dans l'erreur (370 dans notre exemple).
    • serviceNodeId : toujours égal à "1".
    • login : nom d'utilisateur de l'utilisateur système, première sous-chaîne du résultat de l'étape 1 : "exampleuser"
    • mapped_to : toujours "NULL".
    • home : répertoire d'accueil de l'utilisateur système. Utilisez le résultat de l'étape 1 : "/var/www/vhosts/example.com"
    • shell : shell système disponible pour l'utilisateur. Utilisez le résultat de l'étape 1 : "/bin/false"
    • quota : à définir sur "0"

    So the final command will be:

        mysql> insert into sys_users (id,serviceNodeId,login,account_id,mapped_to,home,shell,quota) values  (370,1,'exampleuser',@id,'','/var/www/vhosts/example.com','/bin/false',0);
    
  4. Modifiez le mot de passe de l'utilisateur système dans *Sites Web & Domaines > onglet Accès à l'hébergement Web * pour synchroniser les mots de passe entre la base de données et le système d'exploitation.

a914db3fdc7a53ddcfd1b2db8f5a1b9c 56797cefb1efc9130f7c48a7d1db0f0c

Email subscription for changes to this article
Save as PDF