L’importation de base de données MySQL via phpMyAdmin est une opération souvent impossible pour des bases volumineuses de plusieurs centaines de Mo ou Go.
En effet, la taille d’un fichier envoyé depuis votre navigateur est limitée par les réglages PHP upload_max_filesize et post_max_size de votre hébergement (2 Mo et 8 Mo par défaut dans PHP), et l’import peut aussi s’interrompre en atteignant la durée maximale d’exécution des scripts. La solution tient dans une archive de 12 Ko et se nomme BigDump, un script léger capable d’importer vos bases MySQL par petits lots.
Présentation de BigDump
À la différence d’un import via phpMyAdmin, qui nécessite l’envoi complet de votre sauvegarde depuis votre navigateur, BigDump lit un fichier déjà déposé sur le serveur et n’en exécute qu’une partie à chaque passage (3 000 lignes par défaut), avant de se relancer là où il s’était arrêté. Il contourne ainsi les limites de taille d’envoi et de durée d’exécution. La documentation de phpMyAdmin le cite d’ailleurs parmi les solutions pour les fichiers trop volumineux.
La dernière version publiée par son auteur, Alexey Ozerov, est la 0.37b, sortie en septembre 2023. Elle prend en charge PHP 8 et utilise l’extension mysqli depuis la version 0.36b. Elle reste distribuée comme une version bêta, sans garantie. Le site de l’auteur renvoie aussi vers une version remaniée, BigDump 2, maintenue sur GitHub par un autre développeur et qui demande PHP 8.1 ou plus.
Vous pouvez télécharger le script BigDump à partir de ce lien :
Script d’importation de bases de données volumineuses
Cet outil est gratuit alors n’hésitez pas à faire un don à son auteur si vous l’appréciez !
Restaurer une base de données avec BigDump
Voici comment utiliser le script BigDump pour restaurer une base MySQL en toute simplicité.
- Commencez par télécharger l’archive et décompressez-la, puis ouvrez le fichier bigdump.php à l’aide d’un éditeur de code ;
- Modifiez les lignes 40 à 43 afin de spécifier les informations de connexion à la base de destination (
$db_server,$db_name,$db_usernameet$db_password). C’est un principe similaire à votre fichier wp-config.php pour information ; - Ligne 49, remplacez
utf8parutf8mb4dans$db_connection_charset = 'utf8';. C’est l’encodage qu’utilise WordPress dès que le serveur MySQL le permet : avec la valeur par défaut, l’import s’arrête sur le premier emoji rencontré ; - Sauvegardez votre base de données MySQL à l’aide de phpMyAdmin ou via SSH pour plus de fiabilité sur des bases volumineuses, sans insertions étendues : BigDump ne sait pas découper une instruction
INSERTqui regroupe de nombreuses lignes. Dans l’exportation Personnalisée de phpMyAdmin, choisissez inclure les noms de colonnes dans chaque instruction INSERT sous Syntaxe à utiliser lors de l’insertion de données. En ligne de commande, ajoutez l’option--skip-extended-insertàmysqldumpou àwp db export; - Créez sur votre serveur un dossier au nom difficile à deviner (par exemple
import-7f3k9), puis déposez-y bigdump.php et votre sauvegarde (.sqlou.gz) via SFTP ou FTP. Pour un très gros fichier, préférez la version non compressée : un fichier.gzdoit être relu depuis le début à chaque passage ; - Si votre sauvegarde ne contient pas d’instructions
DROP TABLE, supprimez d’abord les tables de la base de destination, sans quoi l’import s’arrêtera sur la première table déjà existante ; - Lancez le script bigdump.php en l’ouvrant depuis votre navigateur, par exemple
https://example.com/import-7f3k9/bigdump.php; - Cliquez sur Start Import en face de votre fichier, puis patientez sans fermer l’onglet : BigDump enchaîne automatiquement les passages jusqu’au message de fin ;
- Vérifiez que votre base est correctement importée via phpMyAdmin par exemple ;
- Supprimez immédiatement bigdump.php et votre sauvegarde du serveur (voir ci-dessous).

La technique décrite ci-dessus est celle que nous avons utilisée pour migrer une base de données MySQL de plus de 1 Go pour le site de l’association WordPress Francophone lors des phases de tests. Le résultat est sans appel : BigDump fonctionne à la perfection !
Supprimez BigDump et votre sauvegarde après l’import
C’est l’étape la plus importante. Tant qu’ils restent sur le serveur, le script et votre sauvegarde sont accessibles à toute personne qui en trouve l’adresse. BigDump ne demande aucun mot de passe : sa page affiche le nom de votre base et permet de relancer un import, de supprimer vos fichiers ou d’en envoyer de nouveaux si le dossier est accessible en écriture. Quant au fichier .sql, il peut être téléchargé tel quel, avec les adresses e-mail de vos utilisateurs et leurs mots de passe hachés. BigDump le rappelle d’ailleurs à la fin de l’import. Concrètement :
- supprimez bigdump.php, la sauvegarde et le dossier dès la fin de l’import, puis vérifiez que leur adresse renvoie une erreur 404 ;
- n’utilisez jamais la racine de votre site ni un nom de dossier évident comme
dumpoubackup; - ne gardez pas le script sur le serveur « pour la prochaine fois » : téléchargez-le de nouveau le jour où vous en aurez besoin.
Quelles alternatives à BigDump ?
Si votre hébergeur vous donne un accès SSH, la ligne de commande évite toutes les limites de PHP. Déposez la sauvegarde en dehors du dossier public de votre site, puis lancez l’une de ces commandes (ajoutez -h suivi de l’adresse du serveur de base de données s’il n’est pas local) :
Sur un site WordPress, la commande wp db import de WP-CLI est encore plus simple, car elle lit les identifiants de connexion dans wp-config.php. Elle ne crée pas la base : celle-ci doit déjà exister. Lancez-la depuis le dossier de votre installation :
En cas de changement de domaine, enchaînez avec la commande wp search-replace pour mettre à jour les adresses. Pour aller plus loin, découvrez comment maîtriser WordPress avec WP-CLI. Dans tous les cas, supprimez ensuite la sauvegarde du serveur.
Enfin, si vous administrez vous-même phpMyAdmin, sa documentation propose deux pistes. La première consiste à augmenter upload_max_filesize, post_max_size (qui doit rester supérieur au précédent), memory_limit et max_execution_time dans php.ini. La seconde, à définir un répertoire $cfg['UploadDir'] dans lequel vous déposez la sauvegarde par FTP, pour l’importer sans passer par le navigateur. Sur un hébergement mutualisé, ces réglages relèvent de votre hébergeur.
Pour les bases de taille raisonnable, voyez aussi comment restaurer une base de données MySQL avec phpMyAdmin.
Bonjour §je voudrais savoir s’il existe une base de données d’au moins de 12000000 de données en open? merci
je voudrais les utiliser sur zeppelin
merci
Bonjour,
Après plusieurs essais et de nombreuses modifications de bigdump pour augmenter le nombre de lignes j’y suis arrivé.
MERCI.
Bonjour
Pas de chance pour moi ça ne fonctionne pas !
J’ai ce message d’erreur
Database connection failed due to Access denied for user ‘mdvsauternes_ vins955’@’localhost’ (using password: YES)
Bizarre tout semble pourtant correct. J’utilise la v0.36b
une piste ?
Salut Aurélien, bonne ressource que ce BigDump ! Je l’utilise très régulièrement car certaines BDD de plus de 100Mo ne passent pas….
Salut Fabrice, oui c’est vraiment top ce script franchement et peu connu ! 🙂
Je l’ai utilisé il y a quelques années avec succès en effet.