[Résolu] Format de ligne incorrect trouvé dans votre base de données. ROW_FORMAT=Dynamic offre les meilleures performances de base de données pour Nextcloud

Bonsoir,

Je viens d’upgrader vers la version 31.0.9 et j’ai ça comme notice dans l’admin : Format de ligne incorrect trouvé dans votre base de données. ROW_FORMAT=Dynamic offre les meilleures performances de base de données pour Nextcloud. Veuillez modifier le format de ligne dans la liste: oc_accounts, oc_activity, oc_activity_mq, oc_addressbookchanges, oc_addressbooks, oc_announcements, oc_talk_attendees, oc_appconfig, oc_appointments_hash, oc_audioplayer_albums, oc_audioplayer_artists, oc_audioplayer_genre, oc_audioplayer_playlist_tracks, oc_audioplayer_playlists, oc_audioplayer_stats, oc_audioplayer_streams, oc_audioplayer_tracks, oc_audioplayer_whats_new, oc_authtoken, oc_bruteforce_attempts, oc_calendar_invitations, oc_calendar_reminders, oc_calendar_resources, oc_calendar_resources_md, oc_calendar_rooms, oc_calendar_rooms_md, oc_calendarchanges, oc_calendarobjects, oc_calendarobjects_props, oc_calendars, oc_calendarsubscriptions, oc_cards, oc_cards_properties, oc_circle_circles, oc_circle_clouds, oc_circle_groups, oc_circle_gsevents, oc_circle_gsshares, oc_circle_gsshares_mp, oc_circle_links, oc_circle_members, oc_circle_shares, oc_circle_tokens, oc_cms_pico_websites, oc_collres_accesscache, oc_collres_collections, oc_collres_resources, oc_comments, oc_comments_read_markers, oc_dav_cal_proxy, oc_dav_shares, oc_deck_assigned_labels, oc_deck_assigned_users, oc_groups, oc_deck_attachment, oc_deck_board_acl, oc_deck_boards, oc_deck_cards, oc_deck_labels, oc_deck_stacks, oc_direct_edit, oc_directlink, oc_federated_reshares, oc_file_locks, oc_filecache, oc_filecache_extended, oc_files_trash, oc_flow_checks, oc_flow_operations, oc_flow_operations_scope, oc_timemanager_share, oc_forms_v2_forms, oc_forms_v2_options, oc_forms_v2_submissions, oc_group_admin, oc_group_folders, oc_group_folders_acl, oc_group_folders_groups, oc_group_folders_manage, oc_group_folders_trash, oc_group_user, oc_guests_users, oc_jobs, oc_login_flow_v2, oc_login_notes, oc_mail_accounts, oc_mail_aliases, oc_mail_recipients, oc_mail_coll_addresses, oc_mail_mailboxes, oc_mail_message_tags, oc_mail_messages, oc_mail_provisionings, oc_mail_tags, oc_mail_trusted_senders, oc_migrations, oc_mimetypes, oc_mounts, oc_music_albums, oc_music_ampache_sessions, oc_music_tracks, oc_music_artists, oc_music_cache, oc_music_genres, oc_music_playlists, oc_music_radio_stations, oc_notes_meta, oc_notifications, oc_ratelimit_entries, oc_oauth2_access_tokens, oc_oauth2_clients, oc_polls_comments, oc_polls_log, oc_polls_polls, oc_preferences, oc_privacy_admins, oc_properties, oc_share, oc_reader_prefs, oc_recent_contact, oc_registration, oc_richdocuments_assets, oc_richdocuments_direct, oc_richdocuments_wopi, oc_schedulingobjects, oc_share_external, oc_sociallogin_connect, oc_storages, oc_storages_credentials, oc_systemtag, oc_systemtag_group, oc_systemtag_object_mapping, oc_talk_bridges, oc_talk_commands, oc_profile_config, oc_talk_internalsignaling, oc_talk_rooms, oc_music_podcast_channels, oc_text_documents, oc_text_sessions, oc_text_steps, oc_timemanager_client, oc_timemanager_commit, oc_timemanager_project, oc_timemanager_task, oc_timemanager_time, oc_timetracker_client, oc_timetracker_goal, oc_timetracker_locked_project_allowed_tag, oc_timetracker_project, oc_timetracker_tag, oc_timetracker_timeline, oc_timetracker_timeline_entry, oc_timetracker_user_to_client, oc_timetracker_user_to_project, oc_timetracker_work_interval, oc_timetracker_workinterval_to_tag, oc_trusted_servers, oc_tsp_polls, oc_tsp_votes, oc_twofactor_backupcodes, oc_twofactor_providers, oc_user_status, oc_user_transfer_owner, oc_users, oc_vcategory, oc_vcategory_to_object, oc_webauthn, oc_whats_new, oc_accounts_data, oc_known_users, oc_timetracker_lpa_tags, oc_timetracker_workint_to_tag, oc_announcements_map, oc_talk_sessions, oc_music_podcast_episodes, oc_remote_signing_queues, oc_appointments_sync, oc_calendar_appt_configs, oc_calendar_appt_bookings, oc_notifications_pushhash, oc_authorized_groups, oc_notifications_settings, oc_esignature_sessions, oc_forms_v2_answers, oc_mail_local_messages, oc_mail_attachments, oc_polls_options, oc_polls_preferences, oc_polls_votes, oc_forms_v2_questions, oc_reader_bookmarks, oc_polls_notif, oc_music_ampache_users, oc_music_bookmarks, oc_polls_share

Que faire svp ?

Merci

J’espère que ce fil de discussion t’aidera : Upgrade to Nextcloud Hub 10 (31.0.0) Incorrect row format found in your database

Si tu as installé Nextcloud manuellement sur un serveur Linux avec une pile LAMP/LEMP, tu peux utiliser mon script pour convertir le format des tables: Upgrade to Nextcloud Hub 10 (31.0.0) Incorrect row format found in your database - #3 by bb77

Je suis en MariaDB, pas en MySql.

MariaDB est un fork de MySQL, et les commandes mysql devraient toujours fonctionner avec les versions actuelles de MariaDB, du moins celles fournies dans la version actuelle de Debian/Ubuntu. Je ne suis pas sûr pour les autres distributions.

J’espère que vous comprenez ce qui est écrit ici, je ne suis pas francophone et j’ai utilisé Deepl pour traduire. :wink:

Ok merci. (traduction parfaite :wink:

Salut bb77. J’ai tenté d’appliquer le script amélioré ici : Upgrade to Nextcloud Hub 10 (31.0.0) Incorrect row format found in your database - #13 by YannicK_SupRavII

Mais j’ai ça comme réponse, dans le terminal :
$ sh efface.sh
Enter Database Name: 8n37i_clouder
Enter Username: 8n37i_clouder
Enter Password:
mysql: [Warning] Using a password on the command line interface can be insecure.
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)

J’ai demandé de l’aide au support Infomaniak, ils m’ont donné une réponse, mais je suis incapable de modifier le script.

Ils me disent :

Il manque le paramètre pour l'hôte dans votre script avec l'option -h.

Il faut bien renseigner ça : 8n37i.myd.infomaniak.com

Il faut d'abord se connecter à l'instance mysql avant de lancer vos commandes.

Merci de votre aide.

Oui, le script fonctionne tel quel, mais uniquement avec une base de données locale, c’est-à-dire lorsqu’il est exécuté sur le même serveur que la base de données. Pour l’exécuter sur un serveur distant, vous pouvez essayer d’exécuter la commande avec l’option -h 8n37i.myd.infomaniak.com (voir exemple ci-dessous) :

:warning: Je n’ai pas testé cette méthode, alors n’oubliez pas de sauvegarder la base de données avant d’essayer quoi que ce soit !

#!/bin/bash

# Prompt for database credentials
read -p "Enter Database Name: " DB_NAME
read -p "Enter Username: " DB_USER
read -s -p "Enter Password: " DB_PASS
echo
read -p "Enter Remote Database Host (e.g. 8n37i.myd.infomaniak.com): " DB_HOST

# Execute all ALTER TABLE statements in one query
mysql -h "$DB_HOST" -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" -Bse "
SELECT CONCAT('ALTER TABLE \`', TABLE_NAME, '\` ROW_FORMAT=DYNAMIC;') 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA = '$DB_NAME' 
AND ENGINE = 'InnoDB'
" | mysql -h "$DB_HOST" -u "$DB_USER" -p"$DB_PASS" "$DB_NAME"

Merci bb77. En fait, j’ai dû préciser les variables en dur, car le script présentait une erreur bizarre.

Je passe le sujet en résolu.

Merci encore de ton aide.

Bonne soirée.

1 Like

Comme je l’ai dit, je ne l’ai jamais testé avec une base de données distante. Mais je suis content que vous ayez réussi à résoudre le problème.

Passez également une bonne soirée.