Как перенести базу данных mysql на другой хостинг
Перейти к содержимому

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

  • автор:

Как сделать дамп базы данных MySQL

Дамп базы данных — это её резервная копия. Он нужен, чтобы перенести базу данных MySQL на другой сервер или откатить её к предыдущему состоянию на текущем хостинге, если что-то сломается.

В этой инструкции покажем, как скачать базу данных из phpMyAdmin и как потом восстановить её из полученного файла. А также расскажем, что ещё нужно сделать, если вы переносите базу на другой сервер.

Экспорт базы данных MySQL в phpMyAdmin

На главной странице приложения выберите на боковой панели слева базу данных, которую вы хотите скачать, затем перейдите в верхнем меню на вкладку «Export» и на следующей странице нажмите «Go». Скачивание начнётся автоматически.

Импорт базы данных MySQL в phpMyAdmin

Чтобы восстановить базу данных MySQL из дампа, выберите нужную базу на боковой панели phpMyAdmin и перейдите в верхнем меню на вкладку «Import». Дальше нажмите «Обзор», выберите файл дампа у себя на компьютере и в нажмите «Go» внизу страницы. Когда база загрузится, вы увидите зелёную плашку с уведомлением об окончании процесса.

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

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

На главной странице панели найдите раздел «Базы данных» и откройте приложение «Помощник баз данных MySQL». В нём вам нужно пройти три шага: 1) придумать название базы данных; 2) придумать имя и пароль для её администратора; 3) отметить галочкой пункт «Все привилегии».

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

Например, у сайтов на WordPress этот файл называется wp-config.php , у сайтов на OpenCart — config.php , а у сайтов на Joomla — configuration.php .

Откройте конфигурационный файл в текстовом редакторе и поищите в нём слова «database name», «database username» и «database password». Если у вас сайт на WordPress, вам понадобятся строки, которые начинаются с таких слов:

  • define( ‘DB_NAME’ — название базы данных;
  • define( ‘DB_USER’ — имя администратора базы;
  • define( ‘DB_PASSWORD’ — пароль администратора базы.

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

Перенос базы данных MySQL на другой сервер — Конфигурационный файл WordPress

Что дальше

Теперь вы знаете, как скопировать базу данных MySQL и восстановить её из копии. А также, что делать при переносе базы на другой сервер. Если что-то не получилось или у вас есть дополнительные вопросы, оставьте, пожалуйста, комментарий. Попробуем разобраться вместе.

Переезжайте к нам на хостинг

У нас ваши базы данных будут в безопасности, и каждые три дня будут автоматически создаваться их резервные копии. Круглосуточная поддержка всегда готова помочь, если возникнут вопросы. Отвечаем быстро даже в выходные и праздники.

Все работы по переносу сайта мы готовы взять на себя: проанализируем сайт у текущего провайдера, подберём подходящий тариф и обсудим с вами условия переноса, а когда договоримся о деталях, бесплатно перенесём ваш сайт на HOSTiQ и проверим, чтобы он исправно работал.

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

Перенос базы данных MySQL можно разделить на 4 этапа:

  1. Создание дампа базы.
  2. Перенос дампа на новый сервер.
  3. Создание “пустой” БД на новом сервере и восстановление дампа в неё.
  4. Настройка прав доступа к БД.

Перед началом работы с MySQL убедитесь, что на сервере запущен демон mysql.

Как сделать дамп базы данных

Для создания дампа БД можно воспользоваться следующей командой:

mysqldump -u root -p -f myolddb > /home/username/mydbdump.sql

Затем вводим пароль пользователя:

mypassword

Рассмотрим первую команду. Для создания дампа, мы:

  • воспользовались утилитой mysqldump от имени пользователя MySQL root (ключ –u) (не путать с суперпользователем сервера root);
  • задали проверку пароля (ключ –p);
  • “попросили” создавать дамп даже при возникновении ошибок MySQL (ключ –f);
  • указали имя БД (myolddb);
  • указали директорию, в которой должен быть сохранён дамп БД (/home/username/);
  • указали имя самого дампа (mydbdump.sql).

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

Следующим шагом является перенос дампа на новый сервер. Для этого можно воспользоваться ftp-клиентом, подключиться к старому серверу, скачать дамп на домашний компьютер, и, подключившись к новому серверу, загрузить дамп на него. Другим способом переноса дампа, для которого не нужно выполнять промежуточное копирование на домашнем компьютере, является использование команды wget на новом сервере, с указанием ссылки на старый сервер (например, http://oldserver.com/mydbdump.sql). Однако для использования данной команды необходимо, чтобы на старом сервере был запущен веб-сервер, а файл дампа помещён в корневую директорию хоста oldserver.com (например, /var/www/html).

После того как дамп перенесён, его нужно восстановить на новом сервере. Для начала необходимо войти в MySQL и создать “пустую” БД.

mysql –u root –p mypassword CREATE DATABASE mynewdb; quit

Восстановление дампа базы данных

Далее восстанавливаем дамп в только что созданную БД.

mysql -u root -p -f mynewdb < /home/username/mydbdump.sql mypassword

Настройка прав доступа к БД

Наконец, необходимо настроить права доступа к БД, а именно определить, какой пользователь будет иметь доступ к данной БД. Предположим, Вы устанавливаете WordPress и хотите, чтобы доступ к БД имел пользователь под именем wordpress. В таком случае, нужно войти в MySQL как root при помощи команды:

mysql –u root –p

и выполнить следующие команды:

GRANT ALL ON mynewdb.* to wordpress@localhost identified by 'wordpresspassword'; FLUSH PRIVILEGES; quit

Данная команда не только настраивает права доступа к БД, но также создаёт пользователя БД (например, wordpress) и устанавливает для него пароль (wordpresspassword).

Вы можете проверить корректность создания пользователя:

mysql –u wordpress –p wordpresspassword SHOW DATABASES;

При успешной настройке прав доступа Вы увидите следующий текст:

Перенос базы данных MySQL со старого на новый сервер

img

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

MySQL Migration

Подготовка

Первым делом нужно убедиться, что и на старом, и на новом сервере установлена одинаковая версия MySQL с одинаковым дистрибутивом. Для этого в командной строке выполните:

mysql -V

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

Экспортируем базу данных MySQL в файл дампа

Внимание! Не переносите каталог data на новый сервер и не меняйте внутреннюю структуру БД.

Сначала на старом сервере остановите службу mysql или mariadb, используя команду systemctl:

# systemctl stop mariadb ИЛИ # systemctl stop mysql

Затем сделайте дамп ваших баз MySQL с помощью команды mysqldump:

# mysqldump -u [user] -p --all-databases > all_databases.sql

Если база одна, то можно использовать команду:

# mysqldump -u root -p --opt [database name] > database_name.sql
Перенос дампа MySQL на новый сервер

Теперь используйте команду scp, чтобы перенести файл дампа на новый сервер. После подключения база будет перенесена на новый сервер.

# scp all_databases.sql user@merionet.ru:~/ [Все базы] # scp database_name.sql user@merionet.ru:~/ [Одна база]
Импорт файла дампа MySQL на новый сервер

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

# mysql -u [user] -p --all-databases < all_databases.sql [All Databases] # mysql -u [user] -p newdatabase < database_name.sql [Singe Database]
Проверка импорта

После завершения импорта вы можете проверить базы данных на обоих серверах:

# mysql -u user -p # show databases;
Перенос баз данных и пользователей MySQL на новый сервер

Если нужно переместить все свои БД MySQL, пользователей, разрешения и структуру данных старого сервера на новый, то нужно использовать команду rsync. С ее помощью скопируется весь контент из каталога данных mysql или mariadb на новый сервер.

# rsync -avz /var/lib/mysql/* user@merionet.ru:/var/lib/mysql/

Как только передача завершится, вы можете установить владельца каталога данных mysql или mariadb для пользователя и группы mysql. Для того чтобы убедиться, что что все файлы были переданы можно выполнить просмотр каталога.

# chown mysql:mysql -R /var/lib/mysql/ # ls -l /var/lib/mysql/

Готово! Мы только что очень быстро и просто выполнили миграцию всех баз со старого сервера на новый.

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

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

Что такое база данных?

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

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

Способы переноса базы данных

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

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

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

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

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

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

Качаем дамп через phpMyAdmin

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

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

Панель входа в phpMyAdmin от Спринтхост

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

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

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

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

Если ничего не получается?

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *