@Skrolea

Можно ли просто копировать файлы MySql?

Добрый день. На сервере MySql не работает. Дамп с помощью mysqldump сделать невозможно. Возможно ли просто стянуть текстовые файлы из /var/lib/mysql/mydatabase с вероятностью, что они заработают (ну допустим, на локальном компе)?
  • Вопрос задан
  • 1411 просмотров
Пригласить эксперта
Ответы на вопрос 3
Melkij
@Melkij
PostgreSQL DBA
Текстовые? Нет, текстовые не выйдет. В /var/lib/mysql/ бинарные файлы. Чуток текстовых там, конечно, тоже есть, но данных в бинарных.

Делаете копию каталога (внимание на права доступа и владельцев файлов, это тоже важно и их надо сохранить) datadir. По-видимому, у вас это /var/lib/mysql/
Переносите на машину с той же самой версией mysql, лучше в точности ту же версию, но можно в пределах минорных версий. Попутно делаете ещё одну копию с данных.
Разумеется, на новой машине на момент копирования mysql должен быть остановлен.
Запускаете mysql, читаете логи, исправляете ошибки.
Дальше по обстоятельствам. Если завёлся - то проверяете свои данные, если нет - читаете дальше логи и гугл.
Innodb при успехе восстановится до последней зафиксированной транзакции. myisam - даже в лучшем случае как повезёт. Устойчивость к сбоям - это не про него.
Ответ написан
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER
Можно. Лучше всего целиком /var/lib/mysql - и развернуть где-нибудь в другом месте. Правда при этом утянутся все права, логины и пароли, так что если Вы не знаете пароль админа этой инсталляции - лучше тащить базы по частям - один каталог - это одна база, если она в формате MyISAM. Если InnoDB - то Вам повезло меньше - это несколько больших файлов, лежащих в корне /var/lib/mysql. Если же пароль знаете, ну или не боитесь его ломать - можно копировать все целиком.
Ответ написан
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
> /var/lib/mysql/mydatabase
Нет.

Можно скопировать только весь /var/lib/mysql (при условии, что mysql остановлен).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы