web-dev-qa-db-fra.com

phpMyAdmin: Impossible d'importer un fichier de base de données énorme, des suggestions?

J'ai récemment eu un nouvel ordinateur, alors j'ai pensé déplacer tous mes projets Web. Déplacer les fichiers était facile, cependant, déplacer la base de données semble être un peu plus difficile. J'ai exporté TOUTES les bases de données en utilisant phpMyAdmin et je l’ai sauvegardé dans localhost.sql. Ensuite, j'ai essayé de l'importer sur mon nouvel ordinateur en utilisant également phpMyAdmin, et j'obtiens le message d'erreur suivant:

No data to import. Either no filename was sent or the filesize exceeded the maximum allowed size. See FAQ 1.16. (This was translated from Swedish)

J'ai consulté la FAQ, comme conseillé. Et ils ont mentionné un outil appelé BigDump. Je l'ai donc téléchargée et, après avoir examiné les paramètres, vous devez l'exécuter et j'ai réalisé que JE NE POUVAIS PAS L'UTILISER. Pourquoi? Parce qu'il nécessite une connexion à une base de données spécifique. J'essaie d'importer de nombreuses bases de données à la fois. Donc, pas de succès là-bas.

J'ai également essayé de définir le paramètre upload_max_filesize de PHP (et l'autre mentionné dans la FAQ) à quelque chose comme 999. Cela ne semble pas fonctionner non plus pour une raison quelconque. J'ai redémarré tous les services avant de l'exécuter à nouveau.

Je dois mentionner que j'ai utilisé XAMPP sur mon ancien ordinateur et que je suis passé à WAMP sur mon nouvel ordinateur. Cela ne devrait pas avoir d'importance, non? Comme les deux "packages" utilisent phpMyAdmin et Apache.

Des suggestions sur la façon de contourner ce cauchemar?

18
qwerty

Comment

Assurez-vous de changer les deux * "post_max_size" * et * "upload_max_filesize" * dans votre "php.ini" (situé à l'emplacement où est votre "php.exe").

L'exemple suivant vous permet de télécharger et d'importer des fichiers SQL de 128 Mo:

post_max_size=128M
upload_max_filesize=128M

Redémarrez Apache et vous êtes tous ensemble.

Alternatives

Une autre façon de contourner le problème consiste à utiliser la ligne de commande. Mais c’est une solution de contournement, aussi moche que possible:

C:\xampp\mysql\mysql.exe -u root -p db_name < C:\some_path\your_sql_file.sql

Comme vous n'utilisez pas le serveur mais la ligne de commande, les tailles de téléchargement et POST importent peu. C'est pourquoi j'appelle cela un "solution de contournement", car cela ne résout pas réellement votre problème.

52
user1093284

D'autres essaient toujours de reconfigurer le fichier php.ini mais pour moi, je pense que la meilleure pratique consiste à utiliser votre console MYSQL car elle vous permet réellement de gagner du temps.

Voici le guide étape par étape de la console MYSQL:

Ouvrez votre console MYSQL puis exécutez-le.

Type:

mysql> use nom_base_de_données;

mysql> source emplacement_de_votre_fichier;

emplacement_de_votre_fichier devrait ressembler à C:\mydb.sql

so la commande est mysql> source C:\mydb.sql;

Ce type d'importation SQL est très utile pour BIG SQL FILE.

J'ai copié mon fichier mydb.sql dans le répertoire C: . Il devrait s'agir de C: majuscule pour pouvoir exécuter car cela vous donnera une erreur mysql ou de syntaxe

dans le serveur wamp:

  1. Ouvrez le fichier config.inc.php dans le chemin "C:\wamp\apps\phpmyadmin" et définissez/ajoutez cette ligne. $ cfg ['UploadDir'] = 'upload';
  2. Redémarrer tous les services
  3. Créez maintenant un dossier de téléchargement dans votre dossier phpmyadmin (C:\wamp\apps\phpmyadmin4.0.4\upload) et mettez votre fichier .sql dans le dossier de téléchargement.
  4. Maintenant, ouvrez phpmyadmin dans le navigateur, allez à importer. Vous pouvez voir le fichier dans la liste déroulante juste en dessous du bouton de navigation avec le dossier et les fichiers du répertoire de téléchargement.
  5. Sélectionnez-le et allez…
9
user3509697

Apporter des modifications dans xampp\php\php.ini

Trouver:

post_max_size       = 8M
upload_max_filesize = 2M
max_execution_time  = 30
max_input_time      = 60
memory_limit        = 8M

Changer en:

post_max_size       = 750M
upload_max_filesize = 750M
max_execution_time  = 5000
max_input_time      = 5000
memory_limit        = 1000M
6
Ramya

Vous pouvez importer à partir de la ligne de commande - quelque chose comme mysql < databasedump.sql (selon le système d'exploitation).

3
awm
3
Sarwar Erfan

Suivez cette étape pour vider une énorme base de données:

1) Téléchargez le script php BigDump.php depuis http://www.ozerov.de/bigdump/

2) Déplacez votre bigdump.php et votre databasedump.sql dans le dossier de projets (htdocs ou www).

3) ouvrir le fichier bigdump.php et éditer la section ci-dessous:

$db_server   = 'localhost';
$db_name     = '';
$db_username = '';
$db_password = ''; 

$filename           = '.sql';  

4) ouvrez bigdump.php dans le navigateur et cliquez sur le lien d'importation.

1
codemania

Modifier le fichier my.ini 

dans la section [mysqld] ajoutez les lignes suivantes 

wait_timeout=28800
interactive_timeout = 28800
max_allowed_packet=32M

Redémarrez le mysql 

ouvrez le fichier dump.sql ajoutez les lignes suivantes 

use mydbname

Allez dans le dossier mysql et lancez cette commande

mysql -u root -h localhost < dump.sql
1
Midhun

Cela importera votre gros fichier SQL en quelques secondes:

e:\xampp\mysql\bin>mysql -u root -h localhost < verybigsqlfile.sql

N'utilisez pas phpmyadmin pour importer des fichiers SQL volumineux. Si vous utilisez mysql en ligne, utilisez l’accès à la console mysql.

1
K.K.Bindal

compresser le fichier SQL (uniquement gzip, bzip2, Zip) et l'importer. la compression de fichiers de test, tels que db csv, réduira considérablement la taille du fichier (~ 11 à 2 mb) et phpmyadmin import engine conserve les données compressées

1
Prasad.CH

Si vous êtes sur Linux, vous pouvez aller au terminal et après vous être connecté à mysql et sélectionner la base de données, tapez simplement:

\. /path/to/database/database.sql
0
Marcelo Agimóvel

J'ai essayé de changer la taille autorisée, mais cela n'a pas résolu le problème.

Cependant, il existe un dossier appelé " uploaddir ", dans mon cas particulier, situé dans:

EasyPHP\modules\phpmyadmin\uploaddir

J'ai mis le fichier SQL à cet endroit, puis je suis retourné à l'onglet "Importer" de PHP Mon administrateur. Une option m’a permis de télécharger des fichiers qui se trouvaient déjà dans le dossier "uploaddir"; et ils n'ont pas de limite.

J'utilise Windows et EasyPHP 12.1

0
ecairol

phpmyadmin a également la capacité de lire à partir du disque dur - téléchargez le dump et utilisez cette fonctionnalité. Cependant, je vous conseillerais fortement de la console si possible. C'est beaucoup plus rapide car php n'a pas à traiter le fichier en premier et il est chargé directement sur le serveur.

0
Femaref

Si vous rencontrez une base de données très volumineuse lors du téléchargement, l'interface Web sera limitée à la taille de requête HTTP maximale. 

Editez le PHP.ini pour augmenter la limite de téléchargement 

trouve cette ligne  

;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
;upload_tmp_dir =

; Maximum allowed size for uploaded files.
upload_max_filesize = ??M **<--- change here ....**

Puis redémarrez le serveur

/sbin/service httpd restart

ou utilisez directadmin pour redémarrer le service http

0
Sudantha

Utilisez SQLYog pour les opérations de base de données, c’est le meilleur choix pour les professionnels. En utilisant SQLYog, vous pouvez importer nGB {n-> taille_fini} de la base de données sql.

0
PHP Ferrari

Je sais que c'est vieux, mais… J'ai eu ce problème il y a longtemps… .. Soit j'ai utilisé la console pour exécuter un fichier sql de vidage . Ou j'utilise adminer comme alternative à PHPmyAdmin .

0
reignsly

Une solution simple consiste simplement à télécharger et installer le logiciel "MySql Workbench", basé sur son interface graphique et facile à utiliser. J'ai récemment importé une base de données mysql d'une taille de 300 Mo.

0
Mohammad Zeshan