IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration MySQL Discussion :

[10.0.36-MariaDB] Ne peux pas réimporter un dump


Sujet :

Administration MySQL

  1. #1
    Membre averti
    Avatar de Altau
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    296
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 296
    Points : 360
    Points
    360
    Par défaut [10.0.36-MariaDB] Ne peux pas réimporter un dump
    PHP 5.6.40 / Debian 9

    Je souhaite réinstaller ma base Nextcloud que j'ai sauvegardée par un dump mais ça donne plein d'erreurs du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ERROR 1071 (42000) at line 968: Specified key was too long; max key length is 767 bytes
    En effet, beaucoup de tables ont une structure du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE TABLE `oc_dav_shares` (
      `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
      `principaluri` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
      `type` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
      `access` smallint(6) DEFAULT NULL,
      `resourceid` bigint(20) unsigned NOT NULL,
      `publicuri` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
      PRIMARY KEY (`id`),
      UNIQUE KEY `dav_shares_index` (`principaluri`,`resourceid`,`type`,`publicuri`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=COMPRESSED;
    qui génèrent des enregistrements excessivement longs, surtout en utf8.
    Le dump a bien sûr été généré sur la même machine.

    Comment faire pour aboutir ?
    RAD Studio 10.3 / Ubuntu 20.04 - RYZEN 7 2700X - 24Go de RAM

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    Phare tarmo...
    Il n'a a aucune solution.
    En effet de part la mauvaise qualité de la construction de MySQmerde, il encode les caractères du soit disant format UTF8 sur 3 octets. Comme la longueur des clefs des index dans MySQmerde ne peut pas dépasser 767 octets, tu es baisé parce que 765 / 3 = 255. Tu ne peut donc pas dépasser 255 caractères UTF8 dans une clef d'index !
    Tu as donc le choix de :
    • redévelopper MySQL pour corriger cela (bon courage ! Vive le libre !!!)
    • Choisir un SGBDR professionnel... Pour information dans SQL Server c'est 1600 octets et donc en UTF 8 (codé sur 2 octets), tu peut aller jusqu'à 800 caractères


    A lire sur ce pseudo SGBD non relationnel : https://blog.developpez.com/sqlpro/p...oudre_aux_yeux


    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre chevronné
    Avatar de kedare
    Homme Profil pro
    Network Automation Engineer
    Inscrit en
    Juillet 2005
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Network Automation Engineer

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 548
    Points : 1 861
    Points
    1 861
    Par défaut
    Par contre c'est bizarre que ca a pu rentrer sans soucis dans MySQL avant le backup, il y a une différence de version entre le serveur source et destination (De mémoire c'est au début du fichier backup) ?
    Si non si tu cherches une alternative regarde PostgreSQL qui est supporté par NextCloud nativement contrairement a SQLServer.

  4. #4
    Membre averti
    Avatar de Altau
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    296
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 296
    Points : 360
    Points
    360
    Par défaut [Résolu][10.0.36-MariaDB] Ne peux pas réimporter un dump
    J'ai pu solutionner mon problème en ajoutant les lignes suivantes au fichier mariadb.cnf :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     [mysqld]
     innodb-file-format=barracuda
     innodb-file-per-table=1
     innodb-large-prefix=1
    Merci à ceux qui ont répondu
    RAD Studio 10.3 / Ubuntu 20.04 - RYZEN 7 2700X - 24Go de RAM

Discussions similaires

  1. Je ne peux pas compiler
    Par Halobox dans le forum C
    Réponses: 8
    Dernier message: 11/12/2005, 09h47
  2. Partition endomagée, je ne peux pas booter dessus !
    Par Metroid73 dans le forum Composants
    Réponses: 3
    Dernier message: 04/11/2005, 08h20
  3. [Firebird] on ne peux pas l'exploiter avec Delphi 2005 ??
    Par Harry dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/04/2005, 11h40
  4. [C#] Pourquoi je ne peux pas sauvegarder le fichier Xml ?
    Par gregoun dans le forum Services Web
    Réponses: 5
    Dernier message: 05/05/2004, 10h00
  5. pourquoi je peux pas parler pgplsql ?
    Par blob.b dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 09/09/2003, 23h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo