Если возникают проблемы при импорте/экпорте базы данных, кракозябры после переноса и т.д.

Тема в разделе "Перенос Joomla на хостинг и проблемы с хостингом", создана пользователем DKraev, 21.08.2010.

  1. DKraev
    Offline

    DKraev <i>(aka gft)</i> => Cпециалист <=

    Регистрация:
    16.08.2008
    Сообщения:
    1 627
    Симпатии:
    219
    Пол:
    Мужской
    Приветствую всех. За время моего пребывания на данном форуме довольно часто возникали вопросы по ошибкам при импорте/экспорте базы данных MySQL (далее БД).

    Вопросы примерно такие:

    • После переноса (импорта) БД на хостинг на сайте сбилась кодировка. На локальном сайте все нормально;
    • При переносе (импорте) БД возникает ошибка #1064 или другая;
    • Пропадает текст после переноса (импорта) БД.
    • Как перенести базу с Denwer на хостинг (или наоборот)
    • и т.д
    Прежде чем публиковать подобный вопрос на форуме, настоятельно рекомендую прочитать данный пост полностью, и что самое главное - СДЕЛАТЬ все что здесь написано.

    Большинство ошибок возникает именно из-за неправильного переноса, поэтому я опишу импорт/экспорт БД при помощи скрипта Sypex Dumper. Я буду описывать работу с Lite версией, с которой я успешно работаю уже больше трех лет. Хотел бы заметить что подобной информации полно в сети, однако у нас на форуме её нет. А так как большинство новичков при любой проблеме сразу идут сюда, а не в Google, то я решил написать этот небольшой мануальчик. Многим он поможет решить проблемы с переносом БД, а старожилов форума избавит от необходимости писать про Sypex Dumper снова и снова :)

    В первую очередь скачиваем скрипт отсюда (utf-8, архив прикреплен к посту) либо с сайта разработчика (cp1251). Распаковываем архив. На выходе получим два файла - readme.txt (инструкция) и dumper.php (сам скрипт).

    Экспорт БД с локального компьютера.

    Я работаю на Denwer, но и для других должно быть точно так же по идее.

    1. Копируете файл dumper.php в корень сайта.
    2. Создаете новую папку, которую называете backup
    3. Набираете в браузере: www.adres_sayta.ru/dumper.php
    4. Вводите логин пользователя и пароль для базы данных, нажимаете "Применить"
    5. Чекбокс на "Backup/Создание резервной копии БД". Фильтр таблиц - оставляете пустым. Метод сжатия - GZip. Степень сжатия - 7. Нажимаете "Применить"
    Наблюдаем, как весело бегут строчки вверх. Ваш дамп готов! Зайдите в ранее созданную папку backup, вы увидите архив примерно такой - amurka_2010-08-20_23-30.sql.gz - это и есть дамп БД.

    Импорт БД на хостинг.


    1. Заливаете файл dumper.php в корень сайта на хостинг.
    2. Заливаете папку backup тоже в корень сайта. Права на папку - 777. Так же внутри данной папки будет лежать файл dumper.cfg.php - для него тоже выставляете 777
    3. Набираете в браузере: www.adres_sayta.ru/dumper.php
    4. Вводите логин пользователя и пароль для базы данных, нажимаете "Применить"
    5. Чекбокс на "Restore / Восстановление БД из резервной копии". БД - выбираете базу данных на хостинге. Файл - выбираете наш файл с дампом (пример - amurka_2010-08-20_23-30.sql.gz). Нажимаете "Применить".
    Наш дамп имортируется на хост.

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

    Ошибки.

    Многие могут столкнуться с ошибкой "#2005: Unknown MySQL server host 'имя' (11004)" при импорте БД на хостинг. Это говорит о том, что неверно указан MySQL сервер. В dumper.php по умолчанию указан "localhost", на хостинге же может быть любой. Например - p1543.mysql.ihc.ru

    Откройте файл dumper.php и в 34 строке найдите код:
    Код (PHP):
    1. define('DBHOST', 'localhost:3306');
    Вместо localhost:3306 впишите MySQL сервер вашего хостинга. Сохраните файл. Повторите попытку импорта.
    ----------------------------------------------

    Несколько раз у меня не получалось залить базу на хост при помощи этого скрипта. Но это была проблема хостера. Решалось выставлением CHMOD 777 на папку www
    ----------------------------------------------

    Я не рассматривал дополнительные настройки данного скрипта (кстати их довольно много). Данный мануал рассчитан на новичков, которые испытывают проблемы при переносе БД. Того что я написал достаточно для успешного переноса БД в 90% случаев. За более полной информацией - на сайт разработчика, либо в Google.
     

    Вложения:

    Последнее редактирование: 17.09.2010
    woojin нравится это.
  2.  
  3. woojin
    Offline

    woojin Местный Команда форума => Cпециалист <=

    Регистрация:
    31.05.2009
    Сообщения:
    3 206
    Симпатии:
    334
    Пол:
    Мужской
    "+" тебе за описание

    я приведу свой пример, немного по другому, но принцип то же

    1. открываем phpMyAdmin
    2. делаем дамп базы
    3. потом в получевшемся файлике ищем такую строкуENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1, нас интересует выделенный фрагмент - эта строчка обычно идёт после функции создания таблицы т.е. CREATE TABLE IF NOT EXISTS
    4. если не ясно в какой кодировке должна быть таблицы то этот выделенный фрагмент удаляем везде где он есть, сохраняем получившийся файл
    5. импортируем дамп в другую базу

    P.S. если всё равно кякозяблики, то просто пере сохраняем файл с дампом в другой кодировке - меня этот метод ни когда ещё не подводил
     
  4. mcsweb
    Offline

    mcsweb Недавно здесь

    Регистрация:
    25.01.2010
    Сообщения:
    10
    Симпатии:
    0
    Пол:
    Мужской
    А вот нифига phpMyAdmin не вышло.

    Ради науки решил перекинуть сайт с одного локального сервера на другой.
    С ХАМРР на Денвер.
    Как бы я не делал экспорт базу данных на ХАММРе в Денвере он не принимался.
    В конце концов просто скопировал папку с таблицами с одного сервака на другой.
    В результате сайт работает с ошибками.

    Буду пробовать скрипт от первого советчика.


    Попробовал- результат тот же .
    Хотя дампер.пхп отработал отлично.
    Виднео что то в денвере не так совмещается
     
    Последнее редактирование: 23.08.2010
  5. woojin
    Offline

    woojin Местный Команда форума => Cпециалист <=

    Регистрация:
    31.05.2009
    Сообщения:
    3 206
    Симпатии:
    334
    Пол:
    Мужской
    интересно по чему не сработал ни один ни второй вариант?!

    есть вариант воспользоваться компонентом http://www.akeebabackup.com/ это следующая версия joomlapack

    в описании почитай про совместимость компонента с версиями php
     
  6. Offline

    VashMaster Недавно здесь

    Регистрация:
    19.08.2010
    Сообщения:
    19
    Симпатии:
    1
    Пол:
    Мужской
    Тоже всегда делаю всё аналогично посту ТС. Пользуюсь утилиткой дампер. Проблем обычно не было. Но вот при переносе сайта на Joomla почему-то появились ;)

    Сделал дамп, потом этим же дамперов восстановил дамп. Но всё равно появились кракозябры.
    Проблему удалось решить только с помощью добавления команды:
    Код (CODE):
    1. mysql_query("SET NAMES cp1251");
    в файле index.php на фронт энде и бекенде. Добавил после вызова функции
    Код (CODE):
    1. $mainframe->initialise();


    Получилось примерно так:
    Код (CODE):
    1. $mainframe->initialise();
    2.  
    3. mysql_query("SET NAMES cp1251");


    Только тогда всё стало ОК. Если не поможет, то, возможно, у вас используется кодировка UTF. Пробуйте...

    p.s. При работе с "дампером" редко бывают проблемы с кодировкой, но вот случилось ;) Видимо, я не зря недолюбливаю Джумлу ;)
     
  7. DKraev
    Offline

    DKraev <i>(aka gft)</i> => Cпециалист <=

    Регистрация:
    16.08.2008
    Сообщения:
    1 627
    Симпатии:
    219
    Пол:
    Мужской
    Модераторы, закрепите тему. Подобные вопросы продолжают сыпаться. До второй страницы (куда уже спустилась эта тема) пользователям дочитывать уже лень... По всей видимости что такое поиск они тоже не знают...
     
  8. Offline

    Владимир. Недавно здесь

    Регистрация:
    25.02.2011
    Сообщения:
    1
    Симпатии:
    0
    Пол:
    Мужской
    Не хотел ставиться русский язык, вылезали кракозябры. Как я только не пересохранял файлы и базы ничего не помогало... Снес снова все и сделал по главной инструкции через Sypex и чудо таки случилось!!! :yahoo:

    Хочу добавить:

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

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

    Дальше необходимо просто перенести все файлы с локального компьютера на сервер хостера и поправить файл configuration.php

    А еще у меня возник вопрос относительно приключений с кодировками...
    Не может ли сама операционка выдавать эти сюрпризы?
    Когда я первый раз заливал этот же сайт на хостинг у меня все прошло гладко и не возникло проблем.
    После того как сайт сломали, я переустановил винду, денвер и джумлу на 1.5.22. Вот и думаю, что именно повлияло на неправильное отображение символов...
     
  9. DKraev
    Offline

    DKraev <i>(aka gft)</i> => Cпециалист <=

    Регистрация:
    16.08.2008
    Сообщения:
    1 627
    Симпатии:
    219
    Пол:
    Мужской
    Не знаю, работал и на XP и на семёрке - проблем не возникало. Но может быть потому что я всегда пользуюсь Sypex... Чаше всего траблы вылезают именно на хостинге... НА локалке, как уже сказал, всегда всё ровно...
     
  10. Offline

    oceay Недавно здесь

    Регистрация:
    12.09.2011
    Сообщения:
    1
    Симпатии:
    0
    Пол:
    Мужской
    Спасибо огромное, gft !!!! Сначала многое кажется непонятным, но начинаешь делать согласно инструкции и всё получается само собой. Ещё раз спасибо!
     
  11. woojin
    Offline

    woojin Местный Команда форума => Cпециалист <=

    Регистрация:
    31.05.2009
    Сообщения:
    3 206
    Симпатии:
    334
    Пол:
    Мужской
    это ты админу отправь, я не могу этого сделать!!!
     

Поделиться этой страницей

Загрузка...