L'exportation de base de données mysql / mysql tables au format json via la ligne de commande OU PHP
J'ai un grand tableau d'informations. Je veux l'exporter au format json pour d'autres fins. Je pouvais exporter au format xml à l'aide de la commande ci-dessous.
mysql -u root -p --xml -e "SELECT * FROM db_name.tbl_name" > d:\export.xml
J'ai essayé quelque chose comme ci-dessous pour un format json.
mysql -u root -p --json -e "SELECT * FROM db_name.tbl_name" > d:\export.json
J'ai eu le message d'erreur unknown option '--json'
PS: je ne pouvais pas en mesure d'utiliser n'importe quelle application tierce comme PHPMyadmin /workbench /Contrairement à d'autres à cause de la grande taille de la table.
Il serait grandement apprécié si vous m'aider sur ce point.
OriginalL'auteur Naga | 2016-10-18
Vous devez vous connecter pour publier un commentaire.
mysql ne peut pas directement la sortie au format json
donc, vous avez deux options:
1) exporter en XML l'utilisation d'un outil pour convertir du XML en JSON (un outil qui peut faire face à de grandes tables de cours)
2) écrire un petit script (par exemple en PHP) qui extrait les données de la DB et l'écrit dans le fichier JSON
Remarque importante:
Si vous choisissez l'option nr. (2) vous pouvez avoir des problèmes de chargement de l'ensemble de la table de données, la conversion en JSON et l'enregistrement de fichiers dans un seul "atomique" étape si vous avez beaucoup de dossiers.
Cependant vous pouvez interrompre la tâche en étapes.
Essentiellement une table transformé en JSON est un tableau d'objets, chaque objet représentant un enregistrement unique.
Ouvrir une connexion à la db
De commencer à écrire le fichier de sortie et ouvrir le tableau en écrivant un crochet ouvert
[
Exécuter votre requête de l'extraction de n ( 1 < n < 1000 ) inscrits à temps. (Pour ce faire vous devez
SORT
la table par n'importe quel champ -ex.id
- et l'utilisation de laLIMIT
clause)Convertir chaque enregistrement avec
json_econde
, écrire la chaîne de caractères dans un fichier, écrire une virgule,
à moins d'avoir écrit le dernier enregistrement.Retour à 3 jusqu'à ce que vous atteignez le dernier enregistrement.
Écrire un crochet de fermeture de fichier
]
(fermeture le tableau).Fermez le fichier et la base de
Cela aurait besoin d'un peu plus de codage, mais ce n'est pas la science de fusée.
...et peut-être vous trouver quelque chose en ligne que déjà le fait.
Mise à jour:
Un script qui extrait les données de la DB et l'écrit dans le fichier JSON peuvent être trouvés ici sur GitHub: Vidage de table en JSON
voir mon edit
Merci beaucoup pour votre réponse détaillée. Je vais aller avec votre réponse si je n'ai pas trouvé d'autres options.
voir ma mise à jour pour un prêt à utiliser un script qui extrait les données de la DB et l'écrit dans un fichier au format JSON
Je vous remercie beaucoup pour votre aide. Je vais vérifier et à en faire usage...
OriginalL'auteur Paolo