Задать вопрос

Чем лучше перенести большую базу данных на виртуальный сервер хостинга?

К примеру 500 Мб, MySQL.
Уже не раз переносил по кускам меньшие по размеру базы, но это довольно долго и муторно.
Как вариант, посоветуйте скрипт, который будет разбивать большой дамп базы на небольшие куски и заливать их последовательно в базу данных.
  • Вопрос задан
  • 4702 просмотра
Подписаться 6 Оценить Комментировать
Решения вопроса 1
nowm
@nowm
Насчёт по кускам — не могу сказать, но большой дамп БД можно импортировать из командной строки. Например, если сохранить/закачать дамп в /home/username/mysqldump.sql, то импортировать можно так:

mysql -u user -p database < /home/username/mysqldump.sql


Здесь user после ключа -u — пользователь БД, который имеет право импортировать, database — название БД, в которую будут импортироваться данные; -p — ключ, который указывает, что нужно спросить пароль перед импортом. Если хочется ввести пароль сразу в командной строке, он задаётся после знака равенства в ключе p, вот так: -p=P455w0rd — без пробелов.

Эта команда, если не ошибаюсь, после запуска спросит у вас пароль для пользователя user, а после ввода пароля выполнит файл /home/username/mysqldump.sql (ну или тот, который вы ей укажете) для заданной базы данных.

Так импортировать гораздо проще, чем оперировать кусками файлов.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Посоветовал бы использовать SypexDumper, бесплатная web-утилита для управления бэкапами базы данных. Справляется с любыми объемами БД
Ответ написан
Комментировать
IlyaEvseev
@IlyaEvseev
Opensource geek
Писалось когда-то давно для собственных нужд:
#!/usr/bin/perl

use strict;
use warnings;

my $filenum = 0;
my $fd;

while(<>) {
        if (not $_ or $_ eq "\n" or /^--/) {
                if (defined $fd) {
                        close $fd;
                        undef $fd;
                }
                next;
        }
        if (not defined $fd) {
                my $s = sprintf("%04d.sql", $filenum++);
                open $fd, ">$s";
                print STDERR "$s...\n";
        }
        print $fd $_;   
}

close $fd if defined $fd;
Ответ написан
Комментировать
@Masterme
либо сайпекс дампером либо HeidiSql, в котором есть возможность экспорта из базы с одновременным импортом в другую базу
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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