web-dev-qa-db-fra.com

phpMyAdmin ne charge pas le fichier d'importation de base de données avec une compression non prise en charge (application/gzip)

J'ai mis à niveau une ancienne version de Lubutu vers la version 14, exécutant maintenant PHP 5.5 et phpMyAdmin 4.0.10deb1, je déplace régulièrement de petites exportations de base de données MySQL entre les hôtes (700 Ko gzip, environ 7-10 Mo de SQL décompressé).

Vous avez tenté de charger un fichier avec une compression non prise en charge (application/gzip). La prise en charge n'est pas implémentée ou désactivée par votre configuration.

Tout cela fonctionnait parfaitement sur les anciennes installations PHP, je ne sais pas s'il s'agit d'un problème de type mime ou d'un problème de configuration.

Je peux fournir des dumps phpinfo () détaillés, mais zlip est là, phar, etc.:

Registered PHP Streams  https, ftps, compress.zlib, compress.bzip2, php, file, glob, data, http, ftp, phar, Zip

Registered Stream Socket Transports tcp, udp, unix, udg, ssl, sslv3, tls

Registered Stream Filters   zlib.*, bzip2.*, convert.iconv.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk

Les fichiers sql gzippés ne sont pas corrompus, ils se décompressent et se chargent manuellement sans problème. S'il y a un paramètre de configuration, vous pouvez suggérer que je vais l'essayer

15
mr_than

le même problème se posait sous différentes configurations: Ubuntu 16.04 + PHP 7.0 + VirtualMin. La bibliothèque Zip pour php7.0 n'était tout simplement pas installée, ce qui a permis de résoudre le problème: 

apt-get install php7.0-Zip

Edit: cela fonctionne pour php 7.0, la commande doit correspondre à votre version de php (7.x) 

37
Anybug

Mettez le correctif à partir d'ici http://piwigo.org/forum/viewtopic.php?pid=151458

if (extension_loaded('zlib') && !function_exists('gzopen') && function_exists('gzopen64'))
{
  function gzopen($filename, $mode, $use_include_path = 0) {
    return gzopen64($filename, $mode, $use_include_path);
  }
}

dans votre /etc/phpmyadmin/config.inc.php. Ensuite, il survivra à une mise à jour d'apt-get. 

7
Steve

Voici un scénario alternatif pour vous.

J'ai téléchargé un fichier SQL de phpmyadmin sur un ordinateur portable local. Avant de télécharger sur un nouveau serveur, j'ai compressé le formulaire localement dans le Finder. (c'est l'erreur) car cela ajoute le dossier __MACOS au fichier compressé. myfile.sql.Zip

Génère le même message d'erreur. 

phpMyAdmin ne charge pas le fichier d'importation de base de données avec une compression non prise en charge (application/gzip)

Pour que cela ne se produise plus, il suffit de gzip le fichier à partir de la ligne de commande pour disposer de ..

gzip myfile.sql

myfile.sql.gz 

et télécharger cela. 

5

Merci pour tous les commentaires, en parcourant certains des liens de la question is le choix de zlib par Debian/Ubuntu fournissant la fonction php gzopen64 plutôt que la solution gzopen attendue décrite ici: /kb.parallels.com/fr/116645

/usr/share/phpmyadmin/import.php fournit ce qui suit, le remplacement de gzopen par gzopen64 corrige le problème

        case 'application/gzip':
        if ($cfg['GZipDump'] && @function_exists('gzopen')) {
            $import_handle = @gzopen($import_file, 'r');
        } else {
            $message = PMA_Message::error(
                __('You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.')
            );
            $message->addParam($compression);
            PMA_stopImport($message);
        }
        break;
1
mr_than