Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / MySQL / Установка MySQL /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Апгрейд/даунгрейд MySQL - Программирование от RIN.RU
Апгрейд/даунгрейд MySQL



Модернизация с версии 3.21 до версии 3.22


В версии 3.21 по сравнению с 3.22 не было сделано никаких изменений, влияющих на совместимость. Единственный подводный камень - это то, что для новых таблиц, создающихся со столбцами типа DATE, будет применяться новый способ хранения даты. При использовании старой версии mysqld получить доступ к этим новым полям будет нельзя.


После установки версии MySQL 3.22 необходимо запустить новый сервер, а затем выполнить скрипт mysql_fix_privilege_tables. В результате будут добавлены новые привилегии, необходимые для использования команды GRANT. Если вы забудете выполнить эти действия, то получите Access denied при попытке использовать ALTER TABLE, CREATE INDEX или DROP INDEX. Если для вашего привилегированного (root) пользователя MySQL требуется пароль, то следует указать его как аргумент в mysql_fix_privilege_tables.


Изменен интерфейс C API к функции mysql_real_connect().Если вы располагаете старой клиентской программой, вызывающей данную функцию, то необходимо задать значение 0 для нового аргумента db (или перекодировать данный клиент, чтобы посылать значение элемента db для более быстрых подключений). Необходимо также вызывать mysql_init() перед вызовом функции mysql_real_connect()! Это изменение было проведено для того, чтобы дать возможность новой функции mysql_options() сохранять опции в структуре обработчика MYSQL.


Имя относящейся к mysqld переменной key_buffer изменено на key_buffer_size, однако старое имя можно использовать по-прежнему.


Модернизация с версии 3.20 до версии 3.21


Если вы работаете с версией выше, чем 3.20.28, и хотите перейти к 3.21, то необходимо сделать следующее:


Можно запустить сервер mysqld версии 3.21 с опцией safe_mysqld --old-protocol, чтобы использовать его с клиентами из дистрибутива версии 3.20. В этом случае функция mysql_errno() нового клиента не возвращает никаких серверных ошибок, кроме CR_UNKNOWN_ERROR (она предназначена для клиентских ошибок), при этом сервер использует не новую, а старую функцию проверки password().


Если вы не собираетесь использовать опцию --old-protocol к mysqld, то необходимо будет выполнить следующие изменения:


  • Весь клиентский код следует перекомпилировать. Для использования ODBC необходимо приобрести новый драйвер MyODBC 2.x.

  • Необходимо запустить скрипт `scripts/add_long_password" для преобразования поля Password в таблице mysql.user к CHAR(16).

  • Все пароли в таблице mysql.user должны быть переназначены (чтобы получить 62- разрядные пароли вместо 31- разрядных).

  • Формат таблиц не изменялся, следовательно, в преобразовании каких-либо таблиц необходимости нет.




Версия MySQL 3.20.28 и выше может обрабатывать новый формат таблиц user так, что это не отражается на клиентах. В более ранних, чем 3.20.28, версиях MySQL пароли больше не будут работать с клиентами, если таблица user преобразована. Для уверенности следует прежде провести апгрейд по меньшей мере до версии 3.20.28 и затем модернизировать до версии 3.21.


Новый код клиента работает с сервером mysqld версии 3.20.x, так что в случае каких-либо проблем с версией 3.21.x можно использовать старый сервер 3.20.x без необходимости повторной перекомпиляции клиентов.


Если не применить опцию --old-protocol для mysqld, то старые клиенты выдадут следующее сообщение об ошибке:


ERROR: Protocol mismatch. Server Version = 10 Client Version = 9




Новый интерфейс Perl DBI/DBD также поддерживает старый интерфейс mysqlperl. Единственное изменение, которое следует произвести при использовании mysqlperl, модифицировать аргументы в функции connect(). Новыми аргументами являются: host, database, user, и password (аргументы user и password поменялись местами). See section 8.2.2 Интерфейс DBI.


Ниже перечислены изменения, которые могут повлиять на запросы в старых приложениях:


  • HAVING теперь необходимо указывать перед любым выражением ORDER BY.

  • Произведена замена параметров в LOCATE().

  • Появилось несколько новых зарезервированных слов. Наиболее значимыми из них являются DATE, TIME и TIMESTAMP.




<<<  НазадВперед  >>>
 1  2  3  4  5 


 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Быстрая стандартная установка MySQL

Общие вопросы инсталляции

Установка исходного дистрибутива MySQL

Послеустановочные настройка и тестирование

Заметки по операционным системам

Замечания по установке Perl

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь