MySQL Dump Viewer

4

Sou um usuário do Linux, mas tenho um laptop com Windows no escritório. Eu poderia abrir um pequeno servidor web com o PHPmyadmin ou até mesmo fazer o upload para um sistema remoto e importar para um banco de dados, no entanto, pelo que estou fazendo, gostaria de saber se existe algo mais fácil?

O que eu tenho é um arquivo MySQL Dump de um banco de dados. Eu preciso saber se há alguma coisa lá fora, que pode ler em um arquivo de despejo MySQL e, em seguida, permitir-me realizar seleções (para pesquisar dados), sem que eu tenha que ter um banco de dados MySQL real. Quase como um banco de dados MySQL virtual como um tipo de coisa de arquivo. Basicamente, eu estou tentando cruzar dados de referência, e eu não quero exatamente criar um novo banco de dados, fazer a importação e, em seguida, ler os dados assim. Eu vou, se eu tiver que, mas só estava me perguntando se havia algum tipo de programa que iria ler o meu arquivo de despejo e deixe-me apenas vê-lo como se eu estivesse conectado ao banco de dados.

    
por drewrockshard 01.11.2012 / 16:21

3 respostas

2

Existem algumas ferramentas disponíveis para visualizar os arquivos de despejo por aí. Tenha em mente que é apenas um enorme arquivo de texto com comandos sql. Qualquer ferramenta do SQL Query Analizer pode normalmente abrir e visualizar os arquivos. Não há nenhuma ferramenta (que eu tenha visto) que permita tratar o arquivo txt como um banco de dados editável. Até mesmo a GUI do MYSQL Workbench tem um built-in.

Como um método um pouco mais fácil de importar / modificar / etc os arquivos de despejo, basta usar o ambiente de trabalho mysql para importar o arquivo de despejo para um servidor de banco de dados localmente ... e exportá-lo quando terminar. Não há necessidade de todo o framework php com myPHPAdmin ... e apache ... e tudo mais.

    
por 01.11.2012 / 16:25
0

Se você não quiser uma instalação completa do mysql local, você também pode importar seu mysql-dump para um banco de dados sqlite e (temporariamente) trabalhar com isso. Para converter o mysql-dump você pode usar isto ...

    
por 01.11.2012 / 17:41
0

Eu continuo voltando a essa questão de como consultar um instantâneo de banco de dados e acabei jogando junto uma coleção de chamadas do Docker que acessam o phpmyadmin para um arquivo de despejo .sql. Esta não é exatamente uma solução leve, mas é rápida (depois de trazer as imagens do Docker pela primeira vez), e os bancos de dados e servidores criados são descartáveis.

Com o script (imperfeito e específico do OSX) abaixo, é um one-liner para puxar ou iniciar as máquinas relevantes do Docker, carregar o arquivo de despejo para o servidor mysql e abrir um navegador com phpmyadmin apontado para a base de dados relevante:

#!/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"

( link )

Isso não é realmente diferente da resposta original para carregar o arquivo em um servidor mysql local. Mas são três anos mais tarde e os contêineres fazem o provisionamento e ... bem, a conteinerização é um pouco mais fácil.

    
por 30.12.2015 / 03:32

Tags