Есть несколько инструментов для просмотра файлов дампа. Учтите, что это просто огромный текстовый файл с sql-командами. Любой инструмент SQL Query Analizer обычно может открывать и просматривать файлы. Нет инструмента (который я видел), который позволил бы вам рассматривать текстовый файл как редактируемую базу данных. Даже графический интерфейс MYSQL Workbench имеет один встроенный.
В качестве немного более простого метода импорта / изменения / и т. Д. Файлов дампа просто используйте рабочую среду mysql для импорта файла дампа на локально работающий сервер БД ... и экспортируйте его обратно, когда закончите. Нет необходимости во всей структуре php с myPHPAdmin ... и apache ... и всем остальным.
Я постоянно возвращаюсь к этому вопросу о том, как запросить моментальный снимок БД, и в итоге собрал коллекцию вызовов Docker, которые вытаскивают phpmyadmin для файла дампа .sql. Это не совсем легкое решение, но оно быстрое (во всяком случае, после первого ввода образов Docker), а созданные базы данных и серверы являются одноразовыми.
Приведенный ниже (несовершенный и специфичный для OSX) скрипт представляет собой однострочную программу для загрузки или запуска соответствующих компьютеров Docker, загрузки файла дампа на сервер mysql и открытия браузера с указанием phpmyadmin на соответствующая база данных:
#!/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 )
На самом деле это не отличается от исходного ответа для загрузки файла в локальный сервер mysql. Но прошло три года, и контейнеры упрощают подготовку и ... ну, контейнеризацию.