Как передать базу данных mysql

от admin

Переносим базы данных правильно

В любой непонятной ситуации пользуйтесь инструкцией от «Спринтхост» по переносу баз данных.

База данных (БД) — это структурированный набор информации, с которой сайт непосредственно взаимодействует. Например, у онлайн-магазина в БД хранятся позиции товаров, у новостных агрегаторов — посты и сами новости, практически у всех видов сайтов там хранится информация о пользователях, в особенности если существует возможность создания своего личного кабинета.

Потерять базу данных — это огромная проблема, так как восстановить информацию будет затруднительно. Именно поэтому нужно аккуратно подходить к вопросу хранения и переноса БД.

БД нужно переносить, если вы собрались менять хостинг. Обычно такой переезд включает в себя перенос всей информации и данных, находящихся на аккаунте. Некоторые хостинги, например, Спринтхост, могут бесплатно перенести и сайты, и базы данных к себе, вам нужно только попросить об этом техподдержку. Но эта инструкция для тех, кто хочет сам разобраться во всех тонкостях.

Вариантов переезда не так много: через файловый менеджер, через FTP или SSH — но все они связаны с тем, что нужно создать дамп существующей базы данных.

Дамп — это, по сути, копия БД в формате .sql, набор инструкций для воссоздания структуры базы данных и наполнения ее информацией. То есть если открыть этот файл в текстовом документе, то в нем вы найдете набор команд SQL. Дамп также можно использовать в качестве резервной копии и хранить его на локальном компьютере. В случае утери всей БД, вы сможете восстановиться из дампа.

Создать дамп можно несколькими способами:

  • В панелях управления хостингов иногда присутствует возможность скачать дамп одной кнопкой. Например, в Спринтхост это можно сделать через раздел «Базы данных» Панели управления. Достаточно кликнуть по названию нужной БД и нажать кнопку «Скачать резервную копию». Там же можно и загрузить уже существующий дамп на хостинг;
  • В веб-интерфейсе phpMyAdmin во вкладке «Экспорт»;
  • Утилитой mysqldump в консоли.

Важно! Перед переносом БД на другой хостинг нужно на нем создать пустую базу, куда и будут загружаться данные.

phpMyAdmin — веб-интерфейс для работы с базами данных MySQL. Он доступен как в Спринтхост, так и у подавляющего большинства других площадок.

1. Авторизоваться в интерфейсе можно как обычным пользователем (тогда отобразятся все базы данные), так и под логином конкретной базы данных (этот способ удобен, если нужно предоставить доступ стороннему разработчику для работы с конкретной БД);

2. В левой части интерфейса есть список баз, кликните по нужной вам.

3. Затем в правой части зайдите во вкладку «Экспорт» и нажмите «Вперед».

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

5. Чтобы загрузить дамп на новый хостинг, нужно выполнить те же действия, только перейти во вкладку «Импорт», кликнуть на «Обзор», выбрать дамп на компьютере и нажать «Вперед».

У phpMyAdmin дружественный интерфейс, поэтому с ним легко работать.

Способ подключения по SSH зависит от операционной системы, на которой вы работаете. У Linux это встроенная консоль, а у Windows — SSH-клиент PuTTY, который нужно сначала скачать. Для создания дампа БД в консоли необходимо использовать утилиту mysqldump.

1. Соединитесь с сервером по SSH:

Здесь login — логин в Панели управления, domain.ru — любой из доменов, размещаемых на хостинге. Вместо домена можно указать IP-адрес сервера, который можно посмотреть в Панели управления.

2. Введите пароль для входа в Панель управления. Не переживайте, что в консоли ничего не вводится — это такая защита от «лишних глаз»;

3. После ввода пароля можно создать дамп следующей командой:

mysqldump -u user -p dbname > dump.sql

user — это имя пользователя вашей БД, dbname — название БД, dump.sql — название файла, в который будет сохранен дамп.

4. Введите пароль пользователя БД (не перепутайте с паролем для входа по SSH, они могут отличаться);

5. Если все сделано правильно, то дамп вы найдете в файловом менеджере. Его можно скачать напрямую оттуда или с помощью FTP.

Порой консоль может выдать такую ошибку «mysqldump: Error: ‘Access denied; you need (at least one of) the PROCESS privilege(s) for this operation’ when trying to dump tablespaces». Не пугайтесь, она ни на что не влияет, дамп спокойно создастся.

Чтобы импортировать созданный дамп в новую БД, нужно загрузить его в файловый менеджер хостинга. Делается это точно так же как и при скачивании дампа из файлового менеджера: либо через Панель управления, либо через FTP.

1. Снова подключаемся по SSH к хостингу, на который переносим БД, и вводим пароль;

2. Переходим в директорию (папку), где лежит файл с дампом, при помощи команды cd. Если он находится в корневой папке, то переходить никуда не нужно — оставайтесь на месте:

cd domains/domain.ru

«domains/domain.ru» — это путь до директории domain.ru.

3. В нужной директории вводим:

mysql -u user -p dbname < dump.sql

user — имя пользователя вашей БД, dbname — название вашей БД, dump.sql — имя файла дампа, который нужно импортировать;

4. Если утилита mysql завершила работу без ошибок, дамп будет корректно загружен в БД.

Через FTP нельзя создать дамп и загрузить его сразу в БД, но можно скачать существующий к себе на компьютер или, наоборот, «забросить» его в файловый менеджер хостинга, а потом уже при помощи консоли перенести в базу данных. Для подключения существует несколько FTP-клиентов, но самый популярный и известный — FileZilla. Данные по подключению уточните у вашего хостинг-провайдера, мы будем рассказывать на примере Спринтхост.

1. Для подключения удобно использовать панель быстрого соединения в верхней части программы. Заполните поля: хост – IP-адрес вашего аккаунта, имя пользователя – логин от Панели управления и пароль пользователя. По умолчанию для соединения FileZilla использует 21 порт;

2. Нажмите кнопку «Быстрое соединение»;

3. Если подключение прошло успешно, то в левой части интерфейса вы увидите папки и файлы своего компьютера, а справа — директории сервера, к которому вы подключились. Теперь можно спокойно переносить дамп, а затем при помощи консоли загрузить его в базу данных.

Главное, не переживайте. Перенос любых файлов с хостинга на хостинг по своему формату не отличается от переброски фотографий с одного компьютера на другой. Достаточно один раз разобраться, и в будущем вы будете это делать с закрытыми глазами.

Читать:
Какой тип номенклатуры можно указать для вида номенклатуры

Если все же вы на каком-то шаге зашли в тупик, что-то не работает и у вас ничего не получается, то обязательно пишите в поддержку. Поддержка Спринтхост работает круглосуточно, поэтому поможет в любое время и подскажет, в чем была ошибка. Техподдержка вообще может все своими ручками перенести, она будет только рада помочь клиенту. Кроме того, можно обратиться к Базе знаний, где можно найти еще больше инструкций.

Sorry, you have been blocked

This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.

What can I do to resolve this?

You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page.

Cloudflare Ray ID: 7a69ed04ece5248b • Your IP: Click to reveal 88.135.219.175 • Performance & security by Cloudflare

Перенос базы данных mysql на другой сервер

Перенос БД с одного виртуального выделенного сервера на другой можно осуществить при помощи SCP (или Secure Copy; это метод копирования файлов из оболочки SSH).

Примечание: Для этого необходимо знать пароли виртуальных серверов.

1: Создание дампа MySQL

Прежде чем мигрировать файл БД на другой виртуальный сервер, необходимо создать резервную копию этого файла на исходном виртуальном сервере; для этого существует команда mysqldump:

mysqldump -u root -p —opt [database name] > [database name].sql

Создав дамп MySQL, приступайте к миграции базы данных.

2: Копирование БД

Протокол SCP позволяет скопировать базу данных. Предыдущая команда экспортировала файл БД в домашний каталог текущего пользователя.

Команда scp имеет следующий синтаксис:

scp [database name].sql [username]@[servername]:path/to/database/

К примеру, перенос БД может выглядеть следующим образом:

scp newdatabase.sql user@example.com:

После подключения БД будет перемещена на дугой виртуальный выделенный сервер.

3: Импортирование БД

После перемещения данных на новый сервер импортируйте базу данных:

mysql -u root -p newdatabase < /path/to/newdatabase.sql

Готово! БД MySQL успешно перенесена на другой сервер при помощи протокола SCP.

Как перенести базу данных MySQL на другой сервер

У меня есть сервер с очень большой базой данных mysql (160 ГБ). Как легко перенести эту БД на другой сервер?

Ответ 1

Когда вы говорите «переехать на другой сервер», мы предполагаем, что вы хотите переехать на другой сервер с MySQL, а не на другой SQL-сервер (т. е. postrgres или MSSQL).

В общем случае есть два варианта. Перенести каталог /var/lib/mysql на новый сервер как есть или выполнить процесс экспорта и импорта.

Копирование всего каталога mysql означает перенос меньшего количества данных и точную репликацию базы данных с одной машины на другую. Однако версии MySQL должны быть одинаковыми (я полагаю, что теоретически незначительные версии могут меняться, но я бы не стал на это рассчитывать). Вы можете остановить MySQL, распарсить каталог и с помощью «scp» скопировать его на другую машину. Затем распакуйте каталог на другой машине и запустите MySQL. Если вы хотите делать эту копию регулярно, возможно, вам стоит подумать о том, чтобы сделать прямой rsync каталога lib, чтобы последующие запуски команды rsync копировали только различия.

Процесс экспорта/импорта создаст массивный текстовый файл со всеми вашими данными, сохраненными в виде операторов вставки SQL (и с операторами создания таблиц в начале для настройки базы данных). Его можно будет импортировать в другую версию базы данных MySQL, но, опять же, если версии баз данных сильно отличаются, то все может пойти не так. Обычно лучше держать версии MySQL одинаковыми. Основная проблема при выполнении этого способа заключается в том, что при 160 Гб данных, уже имеющихся в вашей базе, дамп будет очень большим, поскольку в нем будут присутствовать дополнительные данные из операторов SQL. Вы можете использовать некоторые из перечисленных выше команд pipe для отправки данных на удаленную машину или вы можете сделать дамп файла (пропустив его через gzip для сжатия) и передать его через scp (при условии, что у вас достаточно места на диске).

mysqldump -u<user> -p<password> <database name> | gzip > db_dump.sql.gz

Другая техника, которую вы можете использовать, заключается в передаче команды mysqldump через gzip, затем через netcat (который отправляет ее по сети) в другой процесс netcat, запущенный на серверной машине, который передает ее в gzip и, наконец, в mysql. Преимущество этого способа в том, что данные сжимаются по мере прохождения по сети и не создают временных файлов. На целевой машине:

nc -l 55555 | gzip -d -c | mysql <database name> -u<user> -p<password>

На исходной машине:

mysqldump -u<user> -p<password> <database name> | gzip | nc <ip of target server> 55555

Надеюсь, это поможет объяснить некоторые вопросы. Проверьте команды на странице man, так как у меня нет под рукой базы данных MySQL, чтобы проверить это.

Ответ 2

  1. Отключите службы MySQL на сервере A .

  2. Упакуйте каталог данных MySQL (может быть найден в каталоге /var/lib/mysql), который содержит все данные .

  3. Скопируйте конфигурацию MySQL (может быть найдена в /etc/mysql/my.cnf).

  4. Скопируйте оба файла через SSH/SCP на сервер B.

  5. Извлеките данные, поместите файл конфигурации в те же директории.

  6. (Пере)запустите службы MySQL на сервере B.

  7. Вы можете найти путь к вашей директории данных MySQL в файле конфигурации MySQL (my.cnf).

Ответ 3

Базы данных MySQL хранятся очень простым способом:

dir = имена баз данных файлы в dir — это таблицы, индексы и т. д.

Поэтому найдите, где находятся ваши базы данных — возможно, что-то вроде этого:

/var/lib/mysql

Здесь у вас будут все ваши базы данных, а в них — таблицы.

Теперь, когда вы нашли их, остановите MySQL и просто заархивируйте структуру каталогов.

tar -zcf mysqldatabases.tar.gz *.

Теперь у вас есть все материалы MySQL в одном заархивированном файле. Скопируйте его в каталог данных нового сервера и распакуйте/разархивируйте его.

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Похожие статьи