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?
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.
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:
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
Vous pouvez importer à partir de la ligne de commande - quelque chose comme mysql < databasedump.sql
(selon le système d'exploitation).
Vous avez essayé ceci? http://daipratt.co.uk/importing-large-files-into-mysql-with-phpmyadmin/
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.
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
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.
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
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
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
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.
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
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.
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 .
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.