Hébergements Web - Nextcloud 15.0 - La base de données a quelques index manquant / Certaines colonnes de l
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
Frage

Nextcloud 15.0 - La base de données a quelques index manquant / Certaines colonnes de l

Von
NicolasL16
Erstellungsdatum 2018-12-23 14:35:44 (edited on 2024-09-04 12:13:17) in Hébergements Web

Bonjour,

Suite au passage à Nextcloud 15.0, de nouveaux avertissements de sécurité & configuration font leurs apparition dans le dashboard.

**1. Le premier concernant les index manquants dans la base de données:**

> La base de données a quelques index manquant. L'ajout d'index dans de grandes tables peut prendre un certain temps. Elles ne sont donc pas ajoutées automatiquement. En exécutant "occ db:add-missing-indices", ces index manquants pourront être ajoutés manuellement pendant que l'instance continue de tourner. Une fois les index ajoutés, les requêtes sur ces tables sont généralement beaucoup plus rapides.

> Index "parent_index" manquant dans la table "oc_share".
> Index "owner_index" manquant dans la table "oc_share".
> Index "initiator_index" manquant dans la table "oc_share".
> Index "fs_mtime" manquant dans la table "oc_filecache".

Je suis tombé sur la solution d'alinthda qui suggère d’exécuter les requêtes SQL suivantes et de redémarrer le serveur ce qui n'est pas possible sur un mutualisé.

> ALTER TABLE `oc_share` ADD KEY `share_with_index` (`share_with`) USING BTREE;
> ALTER TABLE `oc_share` ADD KEY `parent_index` (`parent`) USING BTREE;
> ALTER TABLE `oc_filecache` ADD KEY `fs_mtime` (`mtime`) USING BTREE;

> Après redémarrage du serveur les avertissements sont corrigés.

**2. Le deuxième concernant la non conversion de certaines colonnes de la base de données:**

> Certaines colonnes de la base de données n'ont pas été converties en big int. Changer le type de colonne dans de grandes tables peu prendre beaucoup de temps, elles n'ont donc pas été converties automatiquement. En exécutant 'occ db:convert-filecache-bigint' ces changements en suspens peuvent être déclenchés manuellement. Cette opération doit être exécutée pendant que l'instance est hors ligne. Pour plus d'information, consulter la page de la documentation.

> filecache.mtime
> filecache.storage_mtime

Avez vous une idée pour corriger ces deux avertissements sur un mutualisé?


4 Antworten ( Latest reply on 2021-02-26 02:50:11 Von
TheophileB2
)

Oui !
Il faut que tu ailles dans phpmyadmin et que tu exécutes les requêtes suivantes :

Corrige le préfixe «oc» si tu l'as changé :

ALTER TABLE `oc_activity` MODIFY `activity_id` bigint NOT NULL AUTO_INCREMENT;
ALTER TABLE `oc_activity` MODIFY `object_id` bigint NOT NULL DEFAULT '0';
ALTER TABLE `oc_activity_mq` MODIFY `mail_id` bigint NOT NULL AUTO_INCREMENT;
ALTER TABLE `oc_filecache` MODIFY `fileid` bigint NOT NULL AUTO_INCREMENT;
ALTER TABLE `oc_filecache` MODIFY `storage` bigint NOT NULL DEFAULT '0';
ALTER TABLE `oc_filecache` MODIFY `parent` bigint NOT NULL DEFAULT '0';
ALTER TABLE `oc_filecache` MODIFY `mimetype` bigint NOT NULL DEFAULT '0';
ALTER TABLE `oc_filecache` MODIFY `mimepart` bigint NOT NULL DEFAULT '0';
ALTER TABLE `oc_filecache` MODIFY `mtime` bigint NOT NULL DEFAULT '0';
ALTER TABLE `oc_filecache` MODIFY `storage_mtime` bigint NOT NULL DEFAULT '0';
ALTER TABLE `oc_mimetypes` MODIFY `id` bigint NOT NULL AUTO_INCREMENT;
ALTER TABLE `oc_storages` MODIFY `numeric_id` bigint NOT NULL AUTO_INCREMENT;

Tout devrait rentrer dans l'ordre ensuite.

Bonjour,
J'ai un problème similaire, mais la solution proposée ne fonctionne pas (ou je m'y prends mal ?)
Le message que j'ai me dit ça :
> Index "calendarobject_calid_index" manquant dans la table "oc_calendarobjects_props".
> Index "schedulobj_principuri_index" manquant dans la table "oc_schedulingobjects".
J'ai essayé la solution proposée, et j'ai ce message :
> Erreur
> Requête SQL :
> ALTER TABLE `oc_activity` MODIFY `activity_id` bigint NOT NULL AUTO_INCREMENT
> MySQL a répondu : Documentation
> (#)1046 - Aucune base n'a été sélectionné

Y a-t-il quelque chose que je n'ai pas compris ?
Merci d'avance !

D'après ce thread (https://help.nextcloud.com/t/help-error-in-mariadb-or-nextcloud/68944/2), il faut que tu lances la commande suivante "./occ db:add-missing-indices" depuis le répertoire Nextcloud.

Vu que tu es sans doute en mutualisé et donc sans accès au terminal, il faut que tu lances la commande avec cette application : https://apps.nextcloud.com/apps/occweb

Désolé de revenir si longtemps après @NicolasL16 , entre temps d'avais abandonné l'idée, et n'ayant pas mis en suivi la discussion, je n'avais pas vu ta réponse... :))

Voilà que je fais une mise à jour, et que le problème se représente, donc je reviens faire un tour par ici ! ^^
J'ai essayé d'installer l'application en question, impossible de la faire fonctionner, ça fait planter le site, en me donnant une erreur interne du serveur :
> Le serveur est incapable d'exécuter votre requête.
> Si cela se reproduit, veuillez envoyer les détails techniques ci-dessous à l'administrateur du serveur.
> Le fichier journal du serveur peut fournir plus de renseignements.

Ce fameux fichier me donne ceci :
`> {"reqId":"YDhc0aB7MhXJ1EcPj0Fo2gAAAXM","level":3,"time":"2021-02-26T02:28:35+00:00","remoteAddr":"remote","user":"remote","app":"index","method":"GET","url":"/index.php/apps/occweb/","message":{"Exception":"ArgumentCountError","Message":"Too few arguments to function OCA\\LdapWriteSupport\\Command\\GroupAdminsToLdap::__construct(), 0 passed in chemin/lib/private/Console/Application.php on line 224 and exactly 4 expected","Code":0,"Trace":`

Donc la question c'est, depuis phpmyadmin, peut-on lancer une requête qui permet d'arriver au même résultat ?