Обновление MySQL с 4.1.* до 5.0 Using a Binary Distribution

Не все так просто и понятно, как написано в документации.
После попытки перезапуска сервера он в /usr/local/mysql/data/hostname.err пишет:
060221 16:06:39 [ERROR] Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist
060221 16:06:39 mysqld ended

Выпрямляем руки:
Для начала убедитесь, что вы не забыли перенести данные из
mysql-xx-old.version-linux-i686/data
в
mysql-xx-new.version-linux-i686/data
и что симлинк (тот, про который в INSTALL-BINARY сказано) указывает туда, куда надо.
cd /usr/local/mysql/bin
./mysqld_safe –user=mysql –skip-grant-tables &

в другой консоли говорим перед этим
tail -f /usr/local/mysql/data/hostname.err
и наблюдаем нечто типа
060221 17:26:26 [Warning] Can’t open and lock time zone table: Table ‘mysql.time_zone_leap_second’ doesn’t exist trying to live without them
060221 17:26:26 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
Version: ‘5.0.18-standard’ socket: ‘/tmp/mysql.sock’ port: 3306 MySQL Community Edition - Standard (GPL)

Соответственно, в процессах mysqld тоже есть. Из /usr/local/mysql/bin запускаем:
./mysql_fix_privilege_tables
Рез-т:
This script updates all the mysql privilege tables to be usable by
MySQL 4.0 and above.

This is needed if you want to use the new GRANT functions,
CREATE AGGREGATE FUNCTION, stored procedures, or
more secure passwords in 4.1

done
В документации написано еще
./mysqlcheck –check-upgrade –all-databases –auto-repair
но –check-upgrade ему почему-то упрорно не нравится. В принципе, и без него проверку запустить тоже не помешает. Имхо.
После этого останавливаем службу, и запускаем уже нормально, через /etc/init.d/mysql или что там у вас.

2 Responses to “Обновление MySQL с 4.1.* до 5.0 Using a Binary Distribution”

  1. tolix Says:

    А зачем данные куда-то переносить или символические ссылки ставить? Можно же просто конфигурационный файл подправить на предмет datadir.

  2. Путник Says:

    Можно:)
    Скажем так: эта процедура рекомендована мануалом, и мне хватило заморочки с неуказаным ключем (–skip-grant-tables) хватило, так что я просто не копал глубоко. Возможно, твой вариант лучше.

Оставить комментарий - Feel free to ask me in English

Он появится после того, как будет одобрен. - All comments are pre-moderated.

Внимание! Пожалуйста, не пишите в комментарии [url=... или [url]... - это будет считаться спамом. Если хотите дать ссылку - пишите просто адрес, до 2х на один коммент.
Attention! Please don't use "[url=..." or "[url]..." in comment's body or it will be deleted as spam
If you want to send me a link just type url, up to 2 urls in one comment.

Спасибо за отзыв! Thank you for a comment!