1. Рады видеть Вас на русскоязычном форуме TeamSpeak!

    У нас Вы можете скачать последнюю версию:

    Перед регистрацией рекомендуем ознакомиться

    с Правилами форума.

    Присоединяйтесь! Учите и обучайтесь!

    Скрыть объявление
  2. Новая группа "Новичок" на нашем форуме!

    Новые пользователи будут попадать в группу "Новичок".

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

    Перейти в тему обсуждения
    Быстрый переход в группу Пользователь
  3. VPS/VDS и дедикейт сервера в аренду с DDoS защитой

    • Низкий пинг
    • Действующий SLA
    • Рублевые цены без привязки к курсу валют

    Бесплатный тестовый период VPS-OpenVZ

    Попробовать

Сервер TS3+MySQL Миграция с SQLITE (win x64)

Тема в разделе "Вопросы по TeamSpeak 3", создана пользователем Alex_sher, 13 мар 2016.

  1. Alex_sher

    Alex_sher Пользователь

    Регистрация:
    21.05.14
    Сообщения:
    7
    Симпатии:
    6
    Баллы:
    43
    Всем привет, здорово навозившись с миграцией с sqlite на mysql хочу поделиться данным опытом тут, ибо все гайды на эту тему мягко говоря водянистые и разбросаны по форуму и просторам интернета маленькими кусочками.

    Итак. Стояла задача перенести уже действующий сервер с sqlite на mysql, без потери базы данных, т.к. переделывать с нуля сервер на котором всё настроено попросту неблагодарная работа.
    Нам понадобится:
    • MySQL (в моем случае стоит версия 5.6)
    • Программа DB Browser for SQLite (https://sourceforge.net/projects/sqlitebrowser/)
    • Текстовый редактор (в моем случае был php Expert Editor)
    • Установленный инструмент PHPMyAdmin
    • Руки из области плеч и голова =)
    MySQL и PHPMyAdmin уже стояли и были полностью готовы к работе (этот же сервер используется под web-сервер), да и думаю что описание настройки знающим людям не потребуется, а новички в это не полезут.

    Приступим.
    Часть первая:
    Через DB Browser for SQLite делаем экспорт нашей уже существующей базы данных (файл ts3server.sqlitedb в корне папки с установленным сервером)
    открываем сохранившейся файл редактором и удаляем первую строку
    Код:
    BEGIN TRANSACTION;
    Затем, используя инструмент автозамены меняем во всей базе
    Код:
    AUTOINCREMENT на AUTO_INCREMENT
    и в самый конец файла добавляем
    Код:
    CREATE TABLE IF NOT EXISTS `teamspeak3_metadata` (
      `ident` varchar(100) NOT NULL,
      `value` varchar(255) DEFAULT NULL,
      UNIQUE KEY `ident` (`ident`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
    INSERT INTO `teamspeak3_metadata` (`ident`, `value`) VALUES
    ('mysql5.5_ready', '1');
    Сохраняем полученный результат и переходим ко второй части:
    Сначала берем из папки redist файл libmariadb.dll и копируем его в корневой каталог сервера тимспика.
    Затем, нам потребуются создать конфигурационные файлы, для запуска сервера. в прицепе архив с заготовками конфигурационных файлов, выложенные в ранее созданной теме по этому вопросу пользователем PlusaN
    рассмотрим эти файлы:
    Код:
    [config]
    
    host=localhost -адрес сервера БД (может отличаться, в зависимости от ваших настроек)
    port=3306
    username=%user_name% - имя пользователя БД
    password=%user_password% - Пароль БД
    database=%db_name% - Имя БД
    socket=
    и второй
    Код:
    machine_id=
    default_voice_port=9987
    voice_ip=0.0.0.0 (тут должен быть ip-адрес сервера)
    liscensepath=
    filetransfer_port=30033
    filetransfer_ip=0.0.0.0(тут должен быть ip-адрес сервера)
    query_port=10011
    query_ip=0.0.0.0(тут должен быть ip-адрес сервера)
    query_ip_whitelist=query_ip_whitelist.txt
    query_ip_blacklist=query_ip_blacklist.txt
    dbplugin=ts3db_mariadb
    dbpluginparameter=ts3db_mariadb.ini
    dbsqlpath=sql/
    dbsqlcreatepath=create_mariadb/
    dblogkeepdays=90
    logpath=logs
    logquerycommands=0
    dbclientkeepdays=30

    Так же в архиве есть файл start.bat для удобства запуска сервера с использованием этой конфигурации.
    Все три файла должны располагаться в корневом каталоге с установленным сервером.

    В последних версиях серверной части TS3, разработчики переименовали файл ts3server_win64.exe в ts3server.exe в этом случае нужно сделать соответствующую правку в .bat файле


    Шаг 3:
    Через PHPMyAdmin создаем Базу данных %DB_name% с кодировкой utf8mb4_general_ci
    и делаем в нее импорт подготовленного дампа базы данных. Если всё сделано правильно, система радостно сообщит о успешном импорте без каких-либо ошибок.

    Далее. Запускаем сервер, используя start.bat и если всё сделано корректно, то сервер успешно запустится.

    При запуске не должно выскочить окно с учетными данными от SQA и токеном привилегии server admin. Если такое окно все-таки выскочило, значит что-то сделано не правильно. смотрим логи тс'а и исправляем ошибки.



    Делайте бекапы!

     

    Вложения:

    • Нравится Нравится x 2
  2. PlusaN

    PlusaNIcon Плюшан Знаток Премиум Пользователь

    Регистрация:
    28.12.13
    Сообщения:
    334
    Симпатии:
    104
    Баллы:
    221
    Что-то я улыбнулся даже :D
    По поводу первой части, мне кажется, что проще сделать снимок, а потом залить его на новый сервер (лично я делал так).
    И вопрос еще один, зачем переносить сервер на MySQL, если есть MariaDB? Конечно плагин от Maria подходит и для MySQL, но все же не очень как-то :)
     
  3. Alex_sher

    Alex_sher Пользователь

    Регистрация:
    21.05.14
    Сообщения:
    7
    Симпатии:
    6
    Баллы:
    43
    Можно и снимком, по сути роли не играет, но мне как то через импорт/экспорт было роднее)

    У меня уже был поднятый "мускуль", не видел смысла накатывать ещё и марию (меня честно говоря даже замучили сомнения, а будут ли они вместе работать) А перегонять все базы которые у меня висят в мускуле опять таки не с руки.... Этот мануальчик в принципе актуален и для перехода на марию, мне так мускуль попросту роднее (имхо)
     
  4. VJean

    VJeanIcon ǝноɯʚıqж Администратор Знаток

    Регистрация:
    26.07.14
    Сообщения:
    1.452
    Симпатии:
    329
    Баллы:
    445
    HeidiSQL, с коннектом через SSH (plink.exe) - для удаленки, либо работать сразу на хосте с коннектом на локалхост. сама прога давно идет в комплекте с марией. прога - мастхейв.
    PHPMyAdmin надо очень жестко закрывать для внешки, больше половины и самое топовое бот-сканов приходится на поиск pma.

    зря... транзакции не от хорошей жизни придумали.

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

    не трогайте 0.0.0.0, менять адрес для бинда нужно в редких случаях. 99% юзверям это не надо и принесет больше головной боли.
     
  5. darkangel66

    darkangel66Icon TEAM-VOICE.COM ATHP Премиум Пользователь

    Регистрация:
    12.06.12
    Сообщения:
    418
    Симпатии:
    169
    Баллы:
    335
    Если на сервере несколько IP адресов а ТС нужно прибить к конкретному то voice_ip= указать придется.
    но я думаю это крайне редкий случай.
     
  6. VRS95KZ

    VRS95KZ Пользователь

    Регистрация:
    26.01.14
    Сообщения:
    93
    Симпатии:
    17
    Баллы:
    64
    Снапшотом конечно легче, но снапшот не перенесёт группы Query. Поэтому конвертация базы ручным методом и только лучше консоль, без PMA и другого подобного софта.

    Личные подводные камни при переезде, как не пытался но таблица tokens никак не создавалась, пришлось смотреть в папке sql сервера правильный вариант. И в некоторых таблицах автоинкремента не было. Так же про PRIMARY KEY не нужно забывать, про COMMIT;, и естественно ссылки, которые в базе.

    Т.е. одной конвертацией тут не обойтись.
     
  7. VJean

    VJeanIcon ǝноɯʚıqж Администратор Знаток

    Регистрация:
    26.07.14
    Сообщения:
    1.452
    Симпатии:
    329
    Баллы:
    445
    + еще не сказано про локаль базы.

    и так конвертация ручками в "блокноте". через консоль слишком много замен, универсального скрипта тут не получится.
    РМА и другой софт - для импорта дампа.

    в таблицах *_properties, complains, custom_fields, group_*, perm_*, tokens он не нужен
     
  8. VRS95KZ

    VRS95KZ Пользователь

    Регистрация:
    26.01.14
    Сообщения:
    93
    Симпатии:
    17
    Баллы:
    64
    Всё очень легко делается через консоль)) Пишется скриптик, и по желанию редактируется так же легко. Но в большей степени он индивидуален.
    Конкретно не про эти, а где он требовался, но его не было.
     
Загрузка...