Nach Update auf 31.0 Falsches Zeilenformat in deiner Datenbank gefunden

Hallo, heute kam ja die 31.0 raus, ich möchte ja immer aktuell sein (ist nicht immer gut) und nun sind hinweise auf der Admin Seite:

Falsches Zeilenformat in deiner Datenbank gefunden. ROW_FORMAT=Dynamic bietet die beste Datenbankleistung für Nextcloud. Bitte aktualisiere das Zeilenformat in der folgenden Liste: oc_phonetrack_shares, oc_properties, oc_richdocuments_member, oc_oauth2_clients, oc_collres_collections, oc_twofactor_u2f_registrations, oc_passwords_share, oc_groups, oc_mail_tags, oc_dav_cal_proxy, oc_richdocuments_wopi, oc_calendar_invitations, oc_flow_operations, oc_passwords_session, oc_notifications_settings, oc_appconfig, oc_systemtag_object_mapping, oc_circles_member, oc_direct_edit, oc_comments, oc_wopi_assets, oc_activity_mq, oc_vcategory_to_object, oc_group_admin, oc_privatedata, oc_cards, oc_vcategory, oc_circles_mount, oc_passwords_password, oc_twofactor_providers, oc_bookmarks_shares, oc_systemtag_group, oc_phonetrack_devices, oc_passwords_password_rv, oc_known_users, oc_phonetrack_pubshares, oc_files_trash, oc_mimetypes, oc_passwords_folder_rv, oc_twofactor_totp_secrets, oc_richdocuments_assets, oc_phonetrack_points, oc_webauthn, oc_calendar_rooms, oc_circles_event, oc_bookmarks_folders_public, oc_phonetrack_sessions, oc_authorized_groups, oc_migrations, oc_circles_remote, oc_share, oc_phonetrack_options, oc_external_options, oc_mail_message_tags, oc_talk_commands, oc_e2e_encryption_lock, oc_calendar_resources_md, oc_bookmarks_tags, oc_wopi_wopi, oc_user_transfer_owner, oc_deck_assigned_users, oc_mail_provisionings, oc_storages_credentials, oc_storages, oc_notifications_pushhash, oc_passwords_entity_folder_revision, oc_calendarchanges, oc_calendar_resources, oc_deck_stacks, oc_calendar_appt_bookings, oc_calendar_appt_configs, oc_text_documents, oc_filecache, oc_circles_mountpoint, oc_ojsxc_presence, oc_richdocuments_direct, oc_circles_token, oc_passwords_tag_rv, oc_filecache_extended, oc_calendarobjects_props, oc_passwords_entity_password_revision, oc_calendar_rooms_md, oc_calendarobjects, oc_talk_rooms, oc_deck_labels, oc_files_antivirus, oc_passwords_entity_password, oc_passwords_relation_password_tag, oc_passwords_entity_challenge, oc_richdocuments_template, oc_users_external, oc_files_avir_status, oc_passwords_registration, oc_bookmarks_folders, oc_talk_attendees, oc_accounts, oc_deck_cards, oc_deck_boards, oc_authtoken, oc_ojsxc_stanzas, oc_addressbookchanges, oc_preferences, oc_recent_contact, oc_mail_mailboxes, oc_systemtag, oc_trusted_servers, oc_passwords_pw_tag_rel, oc_collres_accesscache, oc_twofactor_backupcodes, oc_file_locks, oc_bookmarks, oc_bookmarks_shared_folders, oc_talk_sessions, oc_whats_new, oc_group_user, oc_passwords_entity_registration, oc_text_steps, oc_circles_circle, oc_passwords_entity_session, oc_user_status, oc_profile_config, oc_external_config, oc_accounts_data, oc_calendar_reminders, oc_external_mounts, oc_bookmarks_root_folders, oc_passwords_tag, oc_mail_local_messages, oc_dav_shares, oc_mail_classifiers, oc_passwords_entity_folder, oc_schedulingobjects, oc_cards_properties, oc_notifications, oc_mail_aliases, oc_phonetrack_tileserver, oc_flow_checks, oc_collres_resources, oc_calendarsubscriptions, oc_activity, oc_oauth2_access_tokens, oc_jobs, oc_talk_internalsignaling, oc_passwords_entity_tag, oc_documents_op, oc_passwords_keychain, oc_privacy_admins, oc_bruteforce_attempts, oc_passwords_entity_keychain, oc_documents_session, oc_passwords_entity_share, oc_flow_operations_scope, oc_deck_assigned_labels, oc_passwords_folder, oc_circles_share_lock, oc_directlink, oc_bookmarks_tree, oc_mail_messages, oc_cms_pico_websites, oc_documents_member, oc_calendars, oc_circles_membership, oc_mounts, oc_comments_read_markers, oc_users, oc_passwords_entity_tag_revision, oc_addressbooks, oc_external_applicable, oc_documents_revisions, oc_deck_board_acl, oc_mail_recipients, oc_mail_coll_addresses, oc_mail_trusted_senders, oc_documents_invite, oc_share_external, oc_wopi_tokens, oc_passwords_challenge, oc_talk_bridges, oc_wopi_direct, oc_login_flow_v2, oc_deck_attachment, oc_wopi_locks, oc_federated_reshares, oc_mail_accounts, oc_text_sessions, oc_bookmarks_shared_to_shares, oc_ratelimit_entries, oc_mail_attachments. Weitere Informationen findest du in der Dokumentation ↗.

Was kann ich da jetzt wie machen?

Hallo,

Deine Anfrage beinhaltet zu wenig Informationen.
Es sind Angaben wie Nextcloud-Version, Webserver-Typ, PHP-Version, Log-Einträge nötig.
Screenshots sind auch immer hilfreich.

Ohne zusätzliche Informationen können die Community-Mitglieder Dir nicht helfen.

Gruß,
rakekniven

Eventuell hilft dir ja dieser Thread weiter:

Danke für den Link, so hat es geklappt.
Über phpmyadmin (SQL)

SELECT CONCAT(
  'ALTER TABLE', TABLE_SCHEMA, '.', TABLE_NAME, ' ',
  'ROW_FORMAT=DYNAMIC;'
) AS _alter
FROM INFORMATION_SCHEMA.TABLES
WHERE ENGINE='InnoDB' AND ROW_FORMAT <> 'DYNAMIC';

Dann Ausgabe mit phpmyadmin ausführen, man muss nur nach Table ein Leerzeichen machen das wird falsch ausgegeben aber sonst klappt das.

ALTER TABLE datenbank.oc_wopi_wopi ROW_FORMAT=DYNAMIC;…

1 Like

Oder den Code entsprechend abändern.

SELECT CONCAT(
  'ALTER TABLE', ' ', TABLE_SCHEMA, '.', TABLE_NAME, ' ',
  'ROW_FORMAT=DYNAMIC;'
) AS _alter
FROM INFORMATION_SCHEMA.TABLES
WHERE ENGINE='InnoDB' AND ROW_FORMAT <> 'DYNAMIC';
3 Likes

Funktioniert einfach nicht. @lugau45 @Crashandy mehr als das script nach Login in phpmyadmin einfügen und auf ok klicken ist doch eigentlich nicht erforderlich. Es läuft durch aber die Meldung wird immer noch angezeigt. Muss ich denn nach Start des script und Klick auf OK noch irgend etwas zusätzlich tun?

oder funktioniert es mit mariadb nicht und nur mit sql8…

1 Like

Das gleiche bei mir auch. Bin auch zu blöd :slight_smile:

Ich habe es bei drei älteren Nextcloud-Instanzen erfolgreich durchgeführt, welche schon vor Hub 5 existiert haben. Zwei instanzen arbeiteten MariaDB 10 und eine Instanz mit MySQL 8. Daran kann es also nicht liegen.

Ich habe es bei mir mit phpMyAdmin 5.2 ausgeführt. Verwendest Du eventuell einen anderen SQL-Client? Daran kann es aber eigentlich auch nicht liegen. :confused:

Hallo,

habe es auch erst nicht so recht verstanden wie das anzuwenden ist.
Folgende Schritte durchführen:

  1. In phpmyadmin auf die Nextcloud Datenbank wechseln
  2. Unter SQL den Code von @WM-Loose ausführen
SELECT CONCAT(
  'ALTER TABLE', ' ', TABLE_SCHEMA, '.', TABLE_NAME, ' ',
  'ROW_FORMAT=DYNAMIC;'
) AS _alter
FROM INFORMATION_SCHEMA.TABLES
WHERE ENGINE='InnoDB' AND ROW_FORMAT <> 'DYNAMIC';
  1. In der Anzeige den Haken bei “Alles anzeigen” setzen und oben über der Ausgabe bei Optionen “Vollständige Texte” aktivieren
  2. Dann unten mit “In die Zwischenablage kopieren” den Inhalt der Ausgabe kopieren
  3. In einem externen Texteditor den Inhalt einfügen und alle Zeilen löschen die nicht mit der nextcloud Datenbank anfangen
  4. Den Rest der Anweisungen wieder komplett kopieren
  5. Den Inhalt wieder in der Nexlcloud Datenbank unter SQL ausführen
  6. Fertig!!! :saluting_face:
6 Likes

Werde es morgen direkt ausprobieren und berichten.

Achte darauf, dass du den Datenbank-String vor den Tabellennamen entfernst.

Beispiel

# Falsch wäre
ALTER TABLE DATENBANKNAME.oc_accounts ROW_FORMAT=DYNAMIC;

# Richtig ist
ALTER TABLE oc_accounts ROW_FORMAT=DYNAMIC;
1 Like

Vielen Dank. Mit dieser Anleitung hat es bei mir funktioniert. Auch mit dem Datenbanknamen vor den Tabellennamen.

Moinsen. Erst einmal vielen Dank euch allen. Die Datenbank ist nun geändert und der Hinweis ist weg. Ich kann nur hoffen, dass dies eine Ausnahme bleibt und sowas in Zukunft nicht mehr erfoderlich sein wird. Ich bitte auch die NC Verantwortlichen und Entwickler darüber nachzudenken, ob man sowas den “normalen Usern” und nicht DB-Spezialisten zumuten darf. Nextcloud ist wirklich toll aber wenn das so weitergeht, werden vielen (höre ich überall in meiner Community) auf NC verzichten, ihre MS, Dropbox oder what ever nutzen und statt stundenlang die NC zu reparieren, sinnvolle Dinge tun. NC: mir ist klar, dass Ihr mit Großkunden und staatlichen Projekten in Millionenhöhe Geld verdienen wollt und vielleicht auch müsst aber vergesst nicht, wer euch groß gemacht hat. Sorry aber musste ich einfach mal loswerden und jetzt gehts an die Arbeit :wink:

1 Like

Hallo,
reicht das, wenn ich es im phpmyadmin > “Datenbank auswählen” > “SQL” in der Form eingebe:


ALTER TABLE oc_text_sessions ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_collres_resources ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_social_server_actors ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_schedulingobjects ROW_FORMAT=DYNAMIC;

Siehe Screenshot:

oder kann ich das in einer Anweisung erledigen ohne einzelne Tabellenangabe?
bzw. muss noch eine Anweisung davor/dahinter

Vielen Dank und Grüße
Mike

Es braucht einfach mehr Tester und Reports.

Bei mit steht im externen Texteditor folgendes:


Info Text
usw.
Info Text

SELECT CONCAT(
  'ALTER TABLE', ' ', TABLE_SCHEMA, '.', TABLE_NAME, ' ',
  'ROW_FORMAT=DYNAMIC;'
) AS _alter
FROM INFORMATION_SCHEMA.TABLES
WHERE ENGINE='InnoDB' AND ROW_FORMAT <> 'DYNAMIC';

_alter
ALTER TABLE db.oc_storages_credentials ROW_FORMAT=DYNAMIC;
ALTER TABLE db.oc_circles_remote ROW_FORMAT=DYNAMIC;
usw.


@Spawnsen, @ak-systemloesungen

  1. Was soll ich jetzt da löschen?
    1. und 7. ist auch unklar.
  2. ROW_FORMAT=DYNAMIC steht doch schon richtig in jeder Zeile am Schluss
    Die Fehlermeldung ist doch:
    Falsches Zeilenformat in deiner Datenbank gefunden. ROW_FORMAT=Dynamic bietet die beste Datenbankleistung für Nextcloud. Bitte aktualisiere das Zeilenformat in der folgenden Liste: …

Mit dem ersten Befehl machst du ja erstmal nur eine Datenbankabfrage und diese gibt dir eine Liste mir allen Einträgen zurück, bei der ROW_FORMAT ungleich Dynamic ist.
Bei der Rückgabe erhälst du allerdings Einträge von allen Datenbanken. Du möchtest ja nur die von deiner Nextcloud Installation ändern.

In deiner Liste sollten nur noch Zeilen vorkommen die mit „ ALTER TABLE nextcloud. „ beginnen. Diese dann wieder als SQL ausführen.

==> Bitte alles immer mit einem Backup der Datenbank/Nextcloud Umgebung durchführen!

ALTER TABLE oc_storages_credentials ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_circles_remote ROW_FORMAT=DYNAMIC;
usw.

Bei mir gibt die SQL-Abfrage nur "ALTER TABLE-Zeilen aus mit

ROW_FORMAT=DYNAMIC

am Schluss.

Was soll ich da löschen?

Trotzdem bekomme ich den Fehler:
Falsches Zeilenformat in deiner Datenbank gefunden. ROW_FORMAT=Dynamic bietet die beste Datenbankleistung für Nextcloud. Bitte aktualisiere das Zeilenformat in der folgenden Liste: …

Wie bereits geschrieben, listet das Script die Tabellen auf, die umgestellt werden müssen und sonst nichts. Also das Script nach dem Login mit phpmyadmin durch klick auf sql in das Feld einfügen und dann ganz rechts in diesem Feld auf OK klicken. Danach in der Auflistung oben “alle anzeiken” auswahlen. Damit die Zeilen ganz angezeigt werden und mit kopiert werden können. muss zusätzlich über der Liste (am Anfang) über Optionen “ganze Texte anzeigen” noch aktiviert werden. Erst jetzt, sind die Tabellen Texte komplett verfügbar. Jetzt alles markieren und in einem Texteditor einfügen. Ich verwende dafür Notepad++. Damit kann ich Suchen und ersetzen verwenden um nicht jede Zeile einzeln bearbeiten zu müssen. Nun muss der Tabellenname aus jeder Zeile entfernt werden. Achtet daraus. dass ein Leerzeichen hinter Table bleiben muss und der Tabellenname einschließlich dem . weg muss. Habt ihr das gemacht, kopiert Ihr alle Zeilen aus dem Editorfenster in phpmyAdmin in das Fenster, was Ihr mit Klick auf SQL öffnen könnt. Hier darf dann nur der Inhalt aus dem Editor drin stehen. Also wenn da noch was im Fenster stehen sollte bitte entfernen. Danach klickt ihr dann am Fensterrand unten rechts erneut auf OK. Das ist alles. Vielleicht kann jemand mal für alle ein Video erstellen und bei Imgur bereitstellen. Ich würde es gerne tun aber komme einfach nicht dazu.