MySQL Dump Viewer

4

Je suis un utilisateur de Linux, cependant, je dispose d'un ordinateur portable Windows au bureau. Je pourrais lancer un petit serveur Web avec PHPmyadmin ou même le télécharger sur un système distant et l'importer dans une base de données. Toutefois, pour ce que je fais, j'aimerais savoir s'il est plus simple?

Ce que j'ai est un fichier MySQL Dump d'une base de données. J'ai besoin de savoir s'il existe quelque chose qui puisse lire dans un fichier de vidage MySQL et me permettre ensuite d'effectuer des sélections (pour rechercher des données), sans avoir à disposer d'une base de données MySQL réelle. Presque comme une base de données MySQL virtuelle sous forme de fichier. En gros, j'essaie de croiser des données, et je ne veux pas créer une nouvelle base de données, faire l'importation, puis lire les données comme ça. Je le ferai s'il le faut, mais je me demandais simplement s'il existait une sorte de programme permettant de lire mon fichier de vidage et de me laisser le visualiser comme si j'étais connecté à la base de données.

Drewrockshard
la source

Réponses:

2

Il existe quelques outils pour afficher les fichiers de vidage. Gardez à l'esprit qu'il ne s'agit que d'un énorme fichier texte avec des commandes SQL. N'importe quel outil d'analyse de requêtes SQL peut généralement ouvrir et afficher les fichiers. Il n'y a pas d'outil (que j'ai vu) qui vous permette de traiter le fichier txt comme une base de données modifiable. Même l'interface graphique de MYSQL Workbench en a une intégrée.

Comme méthode légèrement plus facile d'importer / modifier / etc les fichiers de vidage, utilisez simplement le workbench mysql pour importer le fichier de vidage dans un serveur de base de données s'exécutant localement ... et l'exportez une fois terminé. Pas besoin de tout le framework php avec myPHPAdmin ... et apache ... et tout le reste.

TheCompWiz
la source
Oui - c'est ce que je pensais. Merci pour la suggestion - c’est là où je me dirigeais s’il n’y avait rien.
Drewrockshard
1

Je reviens sans cesse à la question de savoir comment interroger un instantané de base de données et a fini par rassembler une collection d'appels Docker qui extraient phpmyadmin pour un fichier de vidage .sql. Ce n'est pas vraiment une solution légère, mais c'est rapide (après avoir importé les images Docker pour la première fois, de toute façon) et les bases de données et les serveurs créés sont jetables.

Avec le script (imparfait et spécifique à OSX) ci-dessous, il s'agit d'une solution unique permettant d'extraire ou de démarrer les machines Docker pertinentes, de charger le fichier de vidage sur le serveur mysql et d'ouvrir un navigateur avec phpmyadmin pointé sur la base de données correspondante. :

#!/bin/bash
ROOT_PWD=root

if [ $# -lt 1 ]; then
  echo "Need a dump file"
  exit 1
fi

dump="$1"
IP=$( docker-machine ip default )

if ! $( docker ps | grep -q "dump_db$" ); then
  # create the data container
  docker create --name dump_data -v /var/lib/mysql mysql

  # run the sql server
  docker run --name dump_db \
    --volumes-from dump_data -v /var/lib/mysql:/var/lib/mysql \
    -e MYSQL_USER=mysql -e MYSQL_PASSWORD=mysql \
    -e MYSQL_DATABASE=dump -e MYSQL_ROOT_PASSWORD=$ROOT_PWD \
    -it -p 3306:3306 -d mysql

  # wait for it to be up and running...
  mysql_port=$( docker port dump_db | grep "3306/tcp" | awk -F: '{print $2;}' )
  while ! curl http://$IP:$mysql_port/
  do
    echo "waiting for mysql server..."
    sleep 1
  done
fi

# upload the dump
docker exec -i dump_db mysql -uroot -p$ROOT_PWD dump < $dump

if ! $( docker ps | grep -q "dump_phpmyadmin$" ); then
  # run phpmyadmin
  docker run -d --link dump_db:mysql -e MYSQL_USERNAME=root --name dump_phpmyadmin -p 80 ahebrank/phpmyadmin
fi

web_port=$( docker port dump_phpmyadmin | grep "80/tcp" | awk -F: '{print $2;}' )
open "http://$IP:$web_port/db_structure.php?server=1&db=dump"

( https://github.com/ahebrank/dumpviewer/blob/master/view )

Ce n'est pas vraiment différent de la réponse originale pour charger le fichier sur un serveur mysql local. Mais trois ans plus tard, les conteneurs facilitent l’approvisionnement et ... enfin, la conteneurisation.

ahebrank
la source
vous êtes le MVP ici
David 天宇 Wong
0

Si vous ne voulez pas d'une installation mysql locale à part entière, vous pouvez également importer votre mysql-dump dans une base de données sqlite et l'utiliser (temporairement) avec cela. Pour convertir mysql-dump, vous pouvez utiliser ceci ...

m.sr
la source