Перенос базы данных с помощью SSH

Перенос базы данных с одного хостинга на свой сервер с помощью SSH

Создание дампа на старом хостинге

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

Обратитесь с справочную службу вашего старого хостинга.

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

Общий вид - putty

Укажите в настройках:
Host Name (or IP address): имя вашего хоста; Connection type: SSH.
Если появится предупреждение WARNING - POTENTIAL SECURITY BREACH!, нажмите Yes(Да). Ввести логин и пароль, которые вы используете на вашем старом хостинге.

Putty - вид в случае успешного подключения

Далее введите следующую команду

mysqldump –h имя_сервера_mysql –u логин_пользователя_БД –p имя_БД > dump.sql

реквизиты имя_сервера_mysql, логин_пользователя, имя_БД уточните в службе поддержки вашего старого хостинга. Имя сервера mysql на других хостинг провайдерах может быть localhost.
Вам будет предложено ввести пароль к базе данных.
Файл будет сохранен в корневом каталоге сайте.
Также вы можете упаковать дамп. Если он не слишком большой, его можно не упаковывать.

gzip –Nrv9 dump.sql

Вы получите файл вида dump.sql.gz

Импорт дампа на хостинге ИНСИС

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

wget http://ваш_старый_сайт.ru/dump.sql

если упаковывали то

wget http://ваш_старый_сайт.ru/dump.sql.gz

в таком случае базу нужно распаковать командой.

gunzip dump.sql.gz

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

Затем переносим базу командой

mysql –h localhost –u ИМЯ_ПОЛЬЗОВАТЕЛЯ_БД –p ИМЯ_БАЗЫ_ДАННЫХ  < dump.sql

Реквизиты ИМЯ_ПОЛЬЗОВАТЕЛЯ_БД, ИМЯ_БАЗЫ_ДАННЫХ и пароль, который нужно будет ввести редактируются в панели управления. Также уточните адрес сервера базы данных -localhost (указан на странице статистики в разделе Администрирование баз данных)

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

Информация найтена на сайте - http_//help.profintel.ru/wiki/Перенос_базы_данных_с_помощью_SSH

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

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

mysql -uroot -proot_pass db_name < db_name.sql

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

Самым лучшим выходом из ситуации будет ипморт напрямую через cli MySQL :

  • Заходим в MySQL:
    mysql -uLogin -pPassword
        
    (вместо Login и Password вводим данные для авторизации пользователя БД)
  • Выбираем базу данных:
    use db_name
        
    (вместо db_name вводим название БД)
  • Делаем импорт файла в выбранную бд:
    source db_name.sql
        
    (вместо db_name.sql вводим название файла дампа БД или путь до файла, если вы находидест не в той папке, где лежит файл)

Экспорт базы данных.

Делаем экспорт посредством удобного mysqldump :

mysqldump -uLogin -pPassword db_name > db_name.sql

Особые случаи при переносе сайта

Большой размер базы данных

Когда база данных много весит, например, 700 мегабайт, то создать дамп базы данных может оказаться не так просто. Для создания подобного «тяжёлого» дампа с помощью утилиты «phpmyadmin» может потребоваться десятки минут. Многие хостинг-провайдеры задают ограничения на время выполнения скриптов (например, 30 секунд) на сайтах клиентов. Времени оказывается просто недостаточным для создания полного дампа базы данных.

Решение проблемы:

Подключиться по SSH и сделать дамп базы данных MySql с помощью команды mysqldump. На выполнение команд в shell ограничений по времени нет. Копия базы данных будет сохранена на сервере. При необходимости, Вам останется скачать её на свой компьютер. Пример команды для создания дампа базы данных:

mysqldump -h localhost -u username -p databasename > vashmaster.sql

localhost — хост сервера базы данных,
username — логин пользователя базы данных,
databasename — название базы данных, которую следует сохранить,
vashmaster.sql — название файла, под которым будет создан дамп базы данных.

Ограниченные ресурсы сервера

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

Решение проблемы:

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

Скрытые файлы

На некоторых серверах выполнены такие настройки, что скрытые файлы (названия таких файлов начинаются с точки «.») не показываются при подключении по FTP. Это не позволяет скачать прямо по FTP такие важные файлы как .htaccess, что обязательно создаст определённые трудности при запуске сайта на другом хостинге или его восстановлении.

Решение проблемы:

Следует подключиться по SSH и сделать полный архив сайта, например, с помощью последовательности из двух команд:

tar --exclude=/full_path2/www/images -cf /full_path/filename.tar /full_path2/www

/full_path2/www — создаём архив этой директории,
/full_path2/www/images — этот путь не будет добавлен в архив,
/full_path/filename.tar — под этим названием будет создан архив.

gzip /full_path/filename.tar

/full_path/filename.tar — из этого файла будет создан архив /full_path/filename.tar.gz

Архив сайта много весит

Некоторые сайты, которые развиваются годами, имеют очень большой объём (десятки гигабайт). Даже в заархивированном виде. Так как трафик платный, это может создать процесс переноса очень дорогостоящим и долгим.

Решение проблемы:

Нам на помощь опять приходит SSH. Если у Вас есть доступ SSH к обоим хостингам, то можно перекачать сайт напрямую с одного сервера на другой с помощью утилиты scp — безопасное копирование файлов по протоколу SSH. Перекачка файла с сервера на сервер будет происходить без использования промежуточного звена, Вашего компьютера. При этом трафик за Интернет не набежит.

Необходимо подключиться по SSH к одному из серверов и выполнить на нём следующую команду:

scp user@host: /full_path/filename.tar.gz /full_path2/

user — логин пользователя.
host — хост, с которого следует скачивать файлы.
/full_path/filename.tar.gz — путь к скачиваемому файлу архива.
/full_path2/ — путь, по которому будет сохранён скачанный файл архива.

Информация найдена на сайте http_//www.introweb.ru/inews/design/news9699.php