MySQL

Обновление версии MySQL-Windows сервера с 5.0.39 до 5.1.52

Из-за маленькой программы, которая напрочь отказывалась работать с сервером весии 5.0 из-за всего одного слова

KEY `ID_TRANSLATE` (`ID_TRANSLATE`) USING BTREE

Пришлось обновляться до версии 5.1. А точнее 5.1.52. Была одна проблемка – сервер рабочий, поэтому останавливать на долго нельзя.

Пошел на сайт www.mysql.com и скачал zip-архив с бинарниками mysql-noinstall-5.1.52-win32.zip, который предназначен для разработчиков. Весит это все 120 мегабайт, а в распакованном виде – более 500 мегабайт.

После скачивания надо удалить все лишнее – это все файлы отладочных символов с расширением *.pdb, каталоги Dics, Embedded, include, lib, mysql-test, scripts, sql-bench. после этого размер сервера базы данных стал 75 мегабайт. Выяснилось также, что основной файл севиса переименован. Раньше он назывался mysqld-nt.exe, а сейчас стал mysqld.exe. Более того, в службах были выставлены зависимости от сервиса MySQL. Так что удалением старой версии нужно было бы править и их. Был выбран иной путь.

В директории, в которой находится каталог, MySQL-5.0 был создан каталог MySQL-5.1, куда скопирован файл конфигурации my.ini из MySQL-5.0.

Далее надо заменить в файле my.ini параметр рабочего каталога MySQL-сервера. Например:

basedir=»C:Server/MySQL-5.0″

на

basedir=»C:Server/MySQL-5.1″

Далее из бекапа в новый каталог баз данных были скопированы все базы и изменен параметр

datadir=»C:Server/MySQL-5.1/data»

Пытаемся запустить файл сервера MySQL-5.1 в качестве приложения:

> binmysqld —defaults-file=C:\Server\MySQL-5.1\my.ini —standalone

Получилось! Однако, есть несколько Warning’s.

Правим файл конфигурации my.ini

И перезапускаем mysqld.exe

Оставшееся предупреждение примем к сведению и править на будем.

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

Теперь открываем реестр и правим название исполняемого файла службы MySQL:

Здесь мы меняем в параметре ImagePath имя исполняемого файла. Путь оставим прежний – C:Server/MySQL – так как сервер MySQL версии 5.1.52 исправно работает, предыдущий сервер 5.0.39 уже не нужен.

Также ImagePath нужно изменить в разделах

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet001\Services\mysql

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet002\Services\mysql

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet…\Services\mysql

Нахождение нужных разделов делается простым поиском по реестру слова mysqld-nt.exe.

Теперь надо указать в файле my.ini каталог с текущими базами данных (сейчас там стоит резервная версия баз). Далее остановить службу сервера MySQL, переименовать «старый» каталог сервера в другое имя, переименовать «новый» каталог с версией 5.1.52 в имя старого каталога, внести изменения в реестр и, наконец, запустить службу.

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

Однако, сейчас мы должны выполнить mysql_upgrade.exe, чтобы обновить таблицы баз даных – в противном случае даже если все сейчас работает, в будущем могут вылезти баги:

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

Показать больше

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

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

Закрыть