L'exportation d'une grande table MySQL comme plusieurs petits fichiers
J'ai une très grande table MySQL sur mon local serveur de dev: plus de 8 millions de lignes de données. J'ai chargé la table à l'aide de LOAD DATA INFILE.
Je souhaite exporter ces données et de les importer sur un ordinateur hôte distant.
J'ai essayé LOAD DATA LOCAL INFILE à l'hôte distant. Cependant, après environ 15 minutes, la connexion à l'hôte distant échoue. Je pense que la seule solution pour moi pour exporter les données dans un certain nombre de petits fichiers.
Les outils à ma disposition sont PhpMyAdmin, HeidiSQL et MySQL Workbench.
Je sais comment exporter en un seul fichier, mais pas plusieurs fichiers. Comment puis-je faire cela?
Vous pouvez essayer la commande mysqldump avec juste la table et la reconstruction par l'intermédiaire d'importation.
Pouvez-vous vous connecter à la base de la machine à partir de votre ordinateur local?
oui, bien sûr. J'ai été en utilisant HeidiSQL de base de données n¿entretien.
puis juste dump localement diviser le fichier et ensuite télécharger incréments.
Pouvez-vous vous connecter à la base de la machine à partir de votre ordinateur local?
oui, bien sûr. J'ai été en utilisant HeidiSQL de base de données n¿entretien.
puis juste dump localement diviser le fichier et ensuite télécharger incréments.
OriginalL'auteur Billy | 2012-10-28
Vous devez vous connecter pour publier un commentaire.
J'ai juste fait une importation/exportation d'une (partitionné) table avec 50 millions d'enregistrement, il est nécessaire, à seulement 2 minutes de l'exportation à partir d'un raisonnablement rapide de la machine et à 15 minutes de l'importer sur mon ralentissement de bureau. Il n'y avait pas besoin de diviser le fichier.
mysqldump est votre ami, et de savoir que vous avez beaucoup de données, il est préférable de compresser
OriginalL'auteur Riccardo Galli
Prendre un coup d'oeil à mysqldump
Vos lignes doivent être (dans le terminal):
exportation de backupfile.sql à partir de db_name dans votre mysql:
importer à partir de backupfile à db_name dans votre mysql:
Vous avez deux possibilités afin de partager de l'information:
Exporter un tableau à chaque fois à l'aide de l'option pour ajouter un nom de table après le db_name, comme suit:
mysqldump -u user -p db_name table_name > backupfile_table_name.sql
Compresser le fichier(s) (un fichier texte) est très efficace et peut réduire d'environ 20% à 30% de leur taille originale.
La copie des fichiers sur des serveurs distants qui doit être fait avec scp (secure copy) et de l'interaction avec ssh (en général).
Bonne chance.
Jetez un oeil à le modifier. Ajouté Unix "split", comme un exemple, devrait être disponible sur la plupart des systèmes.
OriginalL'auteur Reut Sharabani
J'ai trouvé que les options avancées dans phpMyAdmin me permet de sélectionner le nombre de lignes à l'exportation, plus le point de départ. Cela me permet de créer autant de fichiers de vidage comme nécessaire pour obtenir le tableau sur l'hôte distant.
J'ai dû modifier mon php.paramètres ini, en plus de la config de phpMyAdmin 'ExecTimeLimit paramètre
comme générer les fichiers de vidage prend un certain temps (de 500 000 lignes dans chaque).
- Je utiliser HeidiSQL faire les importations.
OriginalL'auteur Billy
Comme un exemple de la commande mysqldump approche pour une seule table
L'importation est alors aussi simple que de
Ouais, c'est beau, mais je n'ai pas d'accès SSH au serveur. Il ne répond pas à la question.
Vous pouvez toujours lancer un phpmyadmin importer dans le fichier de vidage, si vous avez accès phpmyadmin. Vous avez la possibilité de faire un partiel d'importation, puis continuer en spécifiant le nombre de requêtes pour ignorer que le nombre qui s'est produite avec succès.
OriginalL'auteur Asad Saeeduddin
Utilisation
mysqldump
pour faire un dump de la table dans un fichier.Ensuite, utilisez
tar
avec-z
option pour compresser le fichier.Transfert vers votre serveur distant (avec
ftp
,sftp
ou un autre utilitaire de transfert de fichiers).Ensuite décompresser le fichier sur le serveur distant
Utilisation
mysql
pour importer le fichier.Il n'y a aucune raison pour diviser le fichier d'origine ou d'exportation dans plusieurs fichiers.
S'il vous plaît, expliquez-moi votre question, un peu plus. J'ai peut-être raté quelques informations ici. Ma première réponse rapide est que je n'ai pas s'attendre à des délais d'attente de requête. "mysql", commande de la xxx.sql" fichier (le résultat de l'exportation) sur l'ordinateur local où l'importation est va prendre place. "xxx.sql" le fichier contient "insérer" commandes de la table qui est importé (attendre environ 8 millions de ces commandes/états, c'est à dire égal au nombre de lignes de la table, à portée de main). Je ne vois aucune raison pour laquelle ces "insérer" commandes à l'échec en raison de tout délai d'attente.
C'est un ordinateur hôte partagé - je n'ai pas accès à MySQL en ligne de commande.
La question était: COMMENT diviser les données.... si vous pensez que je devrais ou pas. Clairement, pour moi, c'est la solution la plus simple que je peux facilement importer des fichiers plus petits thru HeidiSQL
OriginalL'auteur p.matsinopoulos
Comment puis-je partager un grand MySQL fichier de sauvegarde en plusieurs fichiers?
Vous pouvez utiliser mysql_export_explode
https://github.com/barinascode/mysql-export-explode
OriginalL'auteur Leonardo Alfonso Tapia Delgado
Si vous n'êtes pas à l'aise avec l'utilisation de la mysqldump outil de ligne de commande, voici deux outils d'interface graphique qui peut vous aider avec ce problème, même si vous devez être en mesure de les télécharger vers le serveur via FTP!
Adminer est un slim et très efficace DB Manager outil qui est au moins aussi puissant que PHPMyAdmin et n'a qu'UN SEUL FICHIER doit être téléchargé sur le serveur qui le rend extrêmement facile à installer. Il fonctionne mieux avec des grandes tables /DB que la PMA n'.
MySQLDumper est un outil développé spécialement pour l'exportation /l'importation de grandes tables /DBs, donc il n'aura aucun problème avec la situation que vous décrivez. La seule dowside est qu'il est un peu plus fastidieux à installer car il y a plus de fichiers et de dossiers (~350 fichiers dans ~1,5 MO), mais il ne devrait pas être un problème pour le télécharger via FTP, et il va certainement faire le travail 🙂
Donc, mon conseil serait d'essayer d'abord Adminer et si celui-ci échoue également aller à la MySQLDumper route.
OriginalL'auteur Larzan