Наиболее правильный и надёжный способ создания дампа

12
DV
На сайте с 01.05.2010
Offline
644
1401

Постоянно возникают проблемы при переезде сайтов. Версии MySQL разные, двиги тоже, просто настройки бывают кривые. На одном сервере дамп грузится, на другом случаются ошибки. Теперь на всякий пожарный делаю несколько дампов, с помощью разных средств — PhpMyAdmin, SypexDumper, SQLYog, HeidiSQL. Но всё равно как на пороховой бочке, постоянно ждёшь гемора.

Осознаю, что подход где-то неправильный. Чем можно создать самый правильный, стандартный дамп, который зальётся везде? Какие условия нужны для этого?

VDS хостинг ( http://clck.ru/0u97l ) Нет нерешаемых задач ( https://searchengines.guru/ru/forum/806725 ) | Перенос сайтов на Drupal 7 с любых CMS. ( https://searchengines.guru/ru/forum/531842/page6#comment_10504844 )
Zero-xack
На сайте с 01.07.2009
Offline
114
#1

2 года переношу базы Sypex'ом. Никогда проблем не возникало.

вот через пхпмайадмин ошибок всегда куча.

Создание сайтов: визитки, порталы, магазины, блоги (/ru/forum/622551)
zexis
На сайте с 09.08.2005
Offline
388
#2

Создаю дамп командой

mysqldump -u root -pxxxxx --add-drop-table dbname>file_name

в итоге бэкап имеет текстовый формат в виде команд

create table ...

insert ...

которые могут быть выполнены на любой версии mysql.

mysql -u root -pxxxx dbname <file_name

Проблем с переносом не возникает.

VO
На сайте с 27.07.2008
Offline
149
#3
zexis:
Создаю дамп командой
mysqldump -u root -pxxxxx --add-drop-table dbname>file_name

в итоге бэкап имеет текстовый формат в виде команд
create table ...
insert ...

которые могут быть выполнены на любой версии mysql.
mysql -u root -pxxxx dbname <file_name

Проблем с переносом не возникает.

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

100% гарантированного решения не существует.

Всегда проверяйте ваши резервные копии до того как потребуется из них что-то восстановить.

zexis
На сайте с 09.08.2005
Offline
388
#4
V(o)ViK:
Может у Вас и не возникает, но что их не будет при такой последовательности нельзя говорить. Бывают разные кодировки по умолчанию, дампы с версий 4.x, и вообще абсурдные ситуации когда в одной базе данные в таблицах в разных кодировках.
100% гарантированного решения не существует.
Всегда проверяйте ваши резервные копии до того как потребуется из них что-то восстановить.

Если в базе разные таблицы в разных кодировках – то это криворукость админа.

Если руки у админа кривые, то не один софт не даст 100% гарантии.

VO
На сайте с 27.07.2008
Offline
149
#5
zexis:
Если в базе разные таблицы в разных кодировках – то это криворукость админа.
Если руки у админа кривые, то не один софт не даст 100% гарантии.

Это скорее программиста/разработчика, но не админа.

esetnod
На сайте с 16.07.2009
Offline
134
#6

А не юзера?

Как кодеры проконтролируют что юзер не зальет в 1 базу несколько движков с разными префиксами?

Быстрый хостинг на SSD от $0.99 (http://just-hosting.ru/) | OpenVZ (http://just-hosting.ru/vds.html) и KVM (http://just-hosting.ru/vds-kvm.html) VDS от $7.95
bugsmoran
На сайте с 18.02.2010
Offline
223
#7
V(o)ViK:
Бывают разные кодировки по умолчанию, дампы с версий 4.x, и вообще абсурдные ситуации когда в одной базе данные в таблицах в разных кодировках.
100% гарантированного решения не существует.

Выгрузка идет в одной кодировке, даже если содержимое таблички в разных. Поэтому если вгружать в тойже кодировке в базу с таким же коллейшеном, то все останется как было.

А кодировка при дампе делается так:

mysqldump db_name -udb_user -pdb_pass --default-character-set=cp1251 > dump.sql

Я использовал эту утилиту уже наверно много сотен раз и ни разу не было варианта, чтобы она не заработала.

Особенно тонко получается, если в сам дамп вписать SET NAMES - он тоже отработает.

Так что zexis прав, это 100% реально работающий результат.

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

esetnod:
А не юзера?
Как кодеры проконтролируют что юзер не зальет в 1 базу несколько движков с разными префиксами?

Он не это имел ввиду. Бывает, что установленный на движок модуль сует в базу свою кодировку. Даже в таблицу созданную движком, а не модулем. Там реальная бредятина бывает.

VO
На сайте с 27.07.2008
Offline
149
#8

bugsmoran, я не стал бы говорить что это 100%. Всегда надо проверять что там в итоге сдампилось. Если бы все было как вы говорите не было бы миллионов тем на форумах о проблемах с кодировкой :)

Himiko
На сайте с 28.08.2008
Offline
560
#9

Согласен.

Если использовать --default-character-set=cp1251 (указание точной кодировке), то проблем практически не бывает.

Потом даже не нужно ничего в дамп прописывать.

Просто:

mysql -u root -pПАРОЛЬ

>use database;

>set names 'cp1251';

>source dump.sql;

Вот так...

Профессиональное администрирование серверов (https://systemintegra.ru). Круглосуточно. Отзывы (/ru/forum/834230) Лицензии (http://clck.ru/Qhf5) ISPManager,VDSManager,Billmanager e.t.c. по низким ценам.
bugsmoran
На сайте с 18.02.2010
Offline
223
#10
V(o)ViK:

Если бы все было как вы говорите не было бы миллионов тем на форумах о проблемах с кодировкой :)

Наличие тем на форумах это не индикатор реального состояния проблемы. Вот даже в данном случае проблемы нет, а тема есть :)

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий