Virtual Laboratory Wiki
Advertisement
MediaWiki
Тип Wiki
Разработчик Wikimedia Foundation Inc.
ОС Кроссплатформенное ПО
Версия 1.15.0 — 10 июня 2009
Лицензия GPL
Сайт www.mediawiki.org

Введение[]

Данное руководство справедливо для компьютера с операционной системой Windows. Данная статья описывает непосредственную загрузку дампов (статей) в собственный Вики-проект из базы данных Википедии (другие более длительные и неофициальные способы здесь не рассматриваются). При этом предполагается, что вы уже установили программное обеспечение MediaWiki на свой компьютер в соответствии с руководством Установка MediaWiki.

При написании обновлённой инструкции все шаги были проверены на машине с двумя четырехядерными процессорами Intel Xeon E5310 и установленной системой Vista (32bit). Использовался сервер приложений STPServer 1.1 (17 Jun 2008) и MediaWiki 1.15.0.

Непосредственый импорт данных в базу[]

Наилучшим способом быстро закачать данные в базу данных своей Википедии - это использовать приложение mwdumper.

Это приложение на языке Java, которое может использоваться, чтобы читать, записывать и конвертировать дампы MediaWiki. Это можно использовать, чтобы сгенирировать SQL дамп от XML - файла (для последующего использования с mysql или phpmyadmin), а так же для того, чтобы непосредственно импортировать данные в базу. Это намного быстрее чем importDump.php, однако, это только импортирует ревизии (содержание страниц), и не обновляет таблицы внутренних ссылок, что означает, что страницы категории и много специальных страниц покажут неполную или неправильную информацию, если Вы не обновите эти таблицы.

Если доступно, Вы можете заполнить таблицы связей, импортируя отдельные SQL дампы этих таблиц, используя непосредственно командную строку клиента mysql. Для Викимедия Викий, эти данные доступны наряду с дампами XML.

Иначе, Вы можете использовать rebuildall.php, который займет много времени, потому что он должен разобрать все страницы. Это не рекомендуется для больших наборов данных.

Скачивание дампов базы данных Википедии[]

На http://download.wikimedia.org/backup-index.html скачиваем дамп Русской Википедии. Так как в списке будет много различных дампов, то можно с помощью поиска (Ctrl+F) найти русские дампы, которые начинаются на ru. Например, можно с помощью поиска найти дамп ruwiki, например, версия за 2009-07-04.

Понадобятся следующие дампы (ссылки данны для версии 2009-07-04, для других версий названия аналогичны):

  • pages-articles.xml.bz2 - Основной дамп содержимого всех статей, списка статей и их ревизий

SQL - скрипты таблиц базы данных:

  • category.sql.gz - список категорий
  • categorylinks.sql.gz - связи страниц с категориями
  • redirect.sql.gz - список страниц редиректов
  • pagelinks.sql.gz - связи вида страница-на-страницу
  • templatelinks.sql.gz - связи с шаблонами
  • image.sql.gz - список изображений
  • imagelinks.sql.gz - связи с изображениями
  • interwiki.sql.gz - для корректного отображения, а точнее для не отображения интервик с Википедии

Замечание Замечание: Сохраните все это в одну директорию, например, P:\LocalWiki\RunDump (pages-articles.xml.bz2 разархивировать не нужно, разархивация произойдет автоматически при импорте данных, остальные sql-скрипты нужно разархивировать).

Настройка mwdumper и загрузка дампов[]

Что нужно скачать[]

  1. В первую очередь скачать и установить Java не ниже версии 1.5. Скачать можно отсюда Java 1.5. После установки проверьте работает ли команда java из командной строки (иначе нужно установить переменную ОС PATH и перезагрузить компьютер)
  2. Так же нужна утилита соединения Java с MySQL mysql-connector JDBC driver
  3. Сам mwdumper.jar. Его можно скачать здесь http://download.wikimedia.org/tools/

Замечание Замечание: Сохраните все это в одну директорию, например, P:\LocalWiki\RunDump (ничего разархивировать не нужно, разархивация произойдет автоматически при импорте данных).

Как выполнить загрузку[]

Шаг 1. Установите default-character-set=utf8[]

Замечание Замечание: Если вы этого не сделаете, то при загрузке русские буквы не будут правильно распознаны и будут выглядеть как знаки "?"

По умолчанию для сервера MySQL данная переменная установленна в latin1 или в cp1251. Для изменения нужно:

  1. Остановите сервер MySQL (при использовании STPServer, можно остановить сервер целиком, выбрав иконку "Остановка" из меню STPServer'а)
  2. Перейдите в каталог T:\usr\local\mysql\, там будет конфигурационный файл сервера MySQL my.ini
  3. Найдите раздел [mysql], и измените соответствующию строку на
    default-character-set=utf8
  4. Найдите раздел [mysqld], и измените соответствующию строку на
    default-character-set=utf8
    при этом переменная init-connect="SET NAMES cp1251" должна так и остаться, что будет указывать серверу, что при пересылки данных от клиента к серверу нужно делать переобразования с кодировки cp1251 в utf8.
  5. Запустите сервер MySQL (при использовании STPServer, можно запустить сервер целиком, выбрав иконку "Запуск" из меню STPServer'а )

Шаг 2. Установите max_allowed_packet[]

Замечание Замечание: Если вы этого не сделаете, то наверняка, при загрузке появится исключение, с сообщением о превышении размера запроса над величиной переменной max_allowed_packet.

По умолчанию для сервера MySQL данная переменная установленна в max_allowed_packet = 1M, что достаточно мало. Нужно установить, например, в max_allowed_packet = 128M. Для этого:

  1. Остановите сервер MySQL (при использовании STPServer, можно остановить сервер целиком, выбрав иконку "Остановка" из меню STPServer'а)
  2. Перейдите в каталог T:\usr\local\mysql\, там будет конфигурационный файл сервера MySQL my.ini
  3. Найдите раздел [mysqld], и впишите туда строку
    max_allowed_packet = 128M
  4. Запустите сервер MySQL (при использовании STPServer, можно запустить сервер целиком, выбрав иконку "Запуск" из меню STPServer'а )
  5. Если вы все сделали правильно, то можно это проверить используя phpmyadmin. Для этого перейдите по адресу http://admin/modules/mysql/phpmyadmin/ . Выбирите пункт Показать системные переменные, и найдя в открывшимся списке max allowed packet можно увидеть какое сейчас значение имеет эта переменная.

Шаг 3. Изменение длины колонки rev_comment таблицы revision[]

Замечание Замечание: Возможно это не обязательно и не совсем правильно. Но если этого не сделать, может при загрузке появится исключение, с сообщением о недостаточной длине этой колонки.

Используйте для этого phpmyadmin. Для этого:

  1. перейдите по адресу http://admin/modules/mysql/phpmyadmin/ .
  2. Выбирите пункт Базы данных, затем wikidb, затем найдите строку в колонке Таблица с названием revision, нажмите на вторую иконку в колонке Действие с подписью Структура.
  3. В первой таблице в колонке Поле найдите rev_comment. В колонке Действие нажмите вторую иконку с подписью "Изменить".
  4. В поле Тип замените значение с TINYBLOB на MEDIUMBLOB. Нажмите кнопку Сохранить.

Шаг 4. Выполните загрузку[]

  1. Создайте файл с расширением .bat, записав в него следующие
    set class=mwdumper.jar;mysql-connector-java-5.1.7/mysql-connector-java-5.1.7-bin.jar
    set data="P:\LocalWiki\RunDump\ruwiki-20090703-pages-articles.xml.bz2"
    java -client -classpath %class% org.mediawiki.dumper.Dumper "--output=mysql://127.0.0.1/wikidb?user=wikiuser&password=ваш пароль"
    "--format=sql:1.5" %data%
  2. Замените путь P:\LocalWiki\RunDump на путь вашей директории из которой вы хотите управлять загрузкой дампов, замените версию 20090703 на загружаемую вами версию, замените слова ваш пароль на реальный пороль wikiuser введенный вами при установки MediaWiki
  3. Запустите созданный .bat файл на выполнение. Если все нормально, то вы увидите сообщения, что добавляются страницы (одно сообщение на 1000 страниц). Дождитесь окончания для версии 20090703 - это 1,214,554 страниц.

Выполнение SQL - скриптов[]

Для выполнения SQL - скриптов понадобится клиент к серверу базы данных MySQL. Здесь представлен некоторый обзор инструментов для работы с MySQL. Имеет смысл выбрать EMS SQL Manager, т.к. он имеет русскоязычный интерфейс с подробной документацией на русском языке. Скачайте и установите его.

Далее :

  1. Разархивируйте скаченые скрипты
  2. Запустите EMS SQL Manager
  3. Выбирете в меню База данных->Зарегистрировать базу данных. В поле Хост введите localhost, в поле Пользователь - wikiuser, а в поле Пароль - пароль, который вы задали при инсталляции MediaWiki. Нажмите Далее, выберите из списка в поле Имя базы данных wikidb, нажимаем Готово
  4. Из списка слева Базы данных щелкаем на wikidb на localhost (для первого раза этот пункт излишен, т.к. после регистрации окно откроется автоматически)
  5. Выбираем в меню Инструменты->SQL скрипт
  6. В средней панели выбираем Выполнить сценарий из файла, выбираем разархивированный скрипт, например, ruwiki-20090703-category.sql, ждем завершения
  7. аналогично выполняем все требуемые скрипты

Замечание Замечание: Имеет смысл в средней панели выбрать Настройки SQL-скрипта, и снять галочку с Прекратить выполнение сценария при ошибке, чтобы возникшая возможно не значительная ошибка не привела к остановке выполнения.

Внимание Внимание: Со скриптом categorylinks.sql могут быть проблемы, т.к. он пересоздает таблицу categorylinks в кодировке utf8 (а нужно в cp1251), и один из его ключей при этом выходит за ограничение длины, в результате чего при выполнении скрипта появится ошибка. Решением это проблемы может быть следующие - очистите эту таблицу перед загрузкой, например, с помощью phpmyadmin откройте скрипт categorylinks.sql и закомментируйте (отметив начало знаком /* и конец знаком */ ) удаление и создание таблицы начиная с DROP до SET character_set_client = @saved_cs_client;

См. также[]


Примечания[]

Advertisement