LINUX.ORG.RU
ФорумAdmin

Конвертация .frm,.ibd, ibdata1 в sql-формат

 ,


1

1

Такой вопрос. Есть неповреждённые копии файлов, составляющих структуру InnoDB базы данных. Нужно перевести их в понятный человеку текстовый sql-дамп. Вариант с подсовыванием их серверу в каталог /var/lib/mysql очень некрасив, и я верю, что есть более изящное решение. Пока что я смог с помощью mysqlfrm --diagnostic достать CREATE-инструкции для таблиц. Но хотелось бы выковырять и сами данные.

Спасибо

Вариант с подсовыванием их серверу в каталог /var/lib/mysql очень некрасив

Не думаю что ты найдёшь более красивый способ

MrClon ★★★★★ ()
Ответ на: комментарий от Vshmuk

Не мне. И видимо не разработчикам Мускуля, Марии и более мелких форков.
На сколько я понимаю с этими файлами иметь дело приходится в основном в двух случаях: 1) что-то навернулось и кроме них ничего не осталось; 2) из-за каких-то проблем бекапить базу приходится бекапя эти файлы (редкий случай, но чувачки из Перконы помнится рассказывали что их клиентам порой приходится таким заниматься, помнится у них даже есть какие-то костыли на этот счёт)

MrClon ★★★★★ ()
Ответ на: комментарий от MrClon

1, 2). Довольно часто бэкапятся именно эти файлы (например, когда бэкап производится «в лоб» через rsync или вообще снапшотом ФС.

3). Судебная экспертиза. Смотреть «оффлайн» в рид-онли содержимое баз. Это можно охренеть, если подцеплять каждую через mysql-сервер.

4). Реверс-инжиниринг (мой случай). Хочу посмотреть, что именно пишет в таблицу софт с mysql-движком

Percona xtrabackup у меня почему-то на этих файлах не завёлся. Лог могу скинуть. Может, не так его готовлю

Vshmuk ()
Ответ на: комментарий от Vshmuk

Бекапят так когда штатные средства бекапа по каким-то причинам неприемлемы (обычно это жесточайше перегруженные серверы, что само по себе не хорошо).
Остальные случаи весьма редки и не стоят того что-бы выковыривать из мускуля реализацию движка хранилища, какие-то части отвечающие за SQL доводить это всё напильником до работоспособного состояния.

Хочу посмотреть, что именно пишет в таблицу софт с mysql-движком

А не проще вхреначить проксю между приложением и мускулем, и дампить все запросы? Гугл, mysql proxy (кажется)

MrClon ★★★★★ ()
Ответ на: комментарий от MrClon

А не проще вхреначить проксю между приложением и мускулем, и дампить все запросы? Гугл, mysql proxy (кажется)

Винда, libmysqld.dll

Vshmuk ()
Ответ на: комментарий от Vshmuk

А, ну тогда страдай. Судьба у тебя такая. Или ищи способ быстро подсовывать мускулю файлы баз. Вообще это три комманды, остановка мускуля, создание симлинка и запуск мускуля

MrClon ★★★★★ ()
Ответ на: комментарий от MrClon

Да причём здесь страдание и судьба? Есть тулза - хорошо, нет тулзы - похуже, но тоже нормально. К чему такой максимализм?

Vshmuk ()
Ответ на: комментарий от Vshmuk

Ну тогда «Испытывай похуже, судьба у тебя такая» (:

Мускуль под виндой это само себе креативно, а уж embeded мускуль под виндой явно для мсье знающих толк в извращениях

MrClon ★★★★★ ()
Ответ на: комментарий от MrClon

Ну это не ко мне, а к программисту.

Я как-то не настолько фаталистично на это реагирую. Работа есть работа, хотелось бы её сделать за минимально возможные усилия.

Хотя у нас уже оффтопик пошёл

Vshmuk ()
Ответ на: комментарий от Vshmuk

4). Реверс-инжиниринг (мой случай). Хочу посмотреть, что именно пишет в таблицу софт с mysql-движком

Включи логи, а не разбирай дамп, раз это твой случай.

zgen ★★★★★ ()
Ответ на: комментарий от Vshmuk

Запускаешь чистую БД и исследуемый софт, запускашь на БД логгирование запросов my.cnf: log = log_file_name - исследуешь на здоровье, что там «пишет в таблицу софт».

Если тебе нужно именно из имеющихся данных, и именно для целей реверс инжениринга, то советую не воротить нос от рабочего способа.

Потому что тут или крестик снять или штаны надеть.

zgen ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.