Апгрейд/даунгрейд MySQL


Файлы MySQL, содержащие структуру и данные, всегда можно перемещать между различными версиями одной и той же архитектуры, если используется одна и та же базовая версия MySQL. В настоящее время базовой является версия с номером 3. При изменении кодировки во время работы MySQL (при этом также может измениться порядок сортировки) необходимо запустить myisamchk -r -q --set-character-set=charset на всех таблицах. В противном случае индексы могут сортироваться неправильно.

В случае недоверия к новым версиям всегда можно переименовать старую версию mysqld, изменив ее имя на что-нибудь вроде mysqld-old-version-number. Если после этого mysqld новой версии начнет вести себя не так, как ожидалось, то можно просто прекратить работу новой версии и перезапустить старую!

И, разумеется, при модернизации следует также сделать резервную копию старых баз данных.

После модернизации у вас могут возникнуть проблемы с перекомпилированными клиентскими программами, такими как Commands out of sync, или произойти неожиданная смерть приложения (coredump). Причина может быть в том, что при компиляции программ были использованы старые заголовочные или библиотечные файлы. В этом случае следует проверить даты создания вашего файла mysql.h и библиотеки libmysqlclient.a, чтобы убедиться, что они из нового дистрибутива MySQL. Если это не так, то программы нужно перекомпилировать!

Если возникнут проблемы с запуском нового сервера mysqld или трудности с подключением без пароля, то нужно убедиться, что вы не используете старый файл my.cnf из старой установки! Это можно проверить с помощью program-name --print-defaults. Если эта программа вместо имени программы выводит что-нибудь иное, то ваш файл my.cnf является активным и оказывает влияние на ход событий!

Каждый раз при установке нового релиза MySQL есть смысл создавать наново и переустанавливать дистрибутив Msql-Mysql-modules, особенно если вы замечаете симптомы того, что ваши скрипты DBI умирают после модернизации MySQL.