Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / 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.22 до версии 3.23


В версии MySQL 3.23 поддерживаются таблицы нового типа MyISAM и старого типа ISAM. Старые таблицы не нуждаются в преобразовании для использования их в версии 3.23. По умолчанию все новые таблицы будут создаваться с типом MyISAM (если вы не запускаете mysqld с опцией --default-table-type=isam). Можно преобразовать таблицу ISAM в таблицу MyISAM при помощи команды ALTER TABLE table_name TYPE=MyISAM или при помощи Perl-скрипта
mysql_convert_table_format.


Клиенты версий 3.22 и 3.21 должны работать с сервером версии 3.23 без каких-либо проблем.


Ниже перечислены моменты, на которые следует обратить внимание при модернизации до версии 3.23:


  • Все таблицы, в которых используется кодировка tis620, должны быть исправлены с помощью myisamchk -r или REPAIR TABLE.

  • При выполнении команды DROP DATABASE над базой данных, связанной символической ссылкой, удаляются как данная ссылка, так и исходная база данных (в 3.22 это было не так, поскольку программа configure не распознавала системный вызов readlink).

  • OPTIMIZE TABLE сейчас работает только с таблицами MyISAM. Для других типов таблиц можно использовать команду ALTER TABLE для оптимизации таблицы. Во время выполнения команды OPTIMIZE TABLE оптимизируемая таблица сейчас заблокирована для других потоков.

  • Клиент mysql сервера MySQL сейчас по умолчанию начинает свою работу с опцией --no-named-commands (-g). Данную опцию можно отключить с помощью --enable-named-commands (-G). В некоторых случаях это может вызывать проблемы несовместимости, например, в скриптах SQL, в которых названные команды используются без точки с запятой! Команды большого формата пока еще работают с начала строки.

  • Функции даты, работающие с частью представления даты (такие как MONTH()), сейчас будут возвращать 0 для даты 0000-00-00 (в версии MySQL 3.22 возвращалась величина NULL).

  • При использовании порядка сортировки символов german необходимо исправить все таблицы с помощью isamchk -r, так как в порядке
    сортировки произведены некоторые изменения!

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

  • AUTO_INCREMENT теперь не будет работать с отрицательными числами; причина в том, что отрицательные числа вызывали проблемы при переходе от -1 к 0. Для таблиц MyISAM AUTO_INCREMENT не обрабатывается на более низком уровне и работает намного быстрее, чем раньше. Для таблиц MyISAM старые автоинкрементные номера также не используются повторно, даже при удалении из таблицы строк.

  • CASE, DELAYED, ELSE, END, FULLTEXT, INNER, code>RIGHT, THEN и WHEN сейчас являются зарезервированными словами.

  • FLOAT(X) сейчас является настоящим типом данных с плавающей точкой, а не величиной с фиксированным числом десятичных знаков.

  • При объявлении DECIMAL(length,dec) аргумент length больше не включает в себя место для знака или десятичной точки.

  • Строка TIME теперь должна представлять собой один из следующих форматов: [[[DAYS] [H]H:]MM:]SS[.fraction] или
    [[[[[H]H]H]H]MM]SS[.fraction].

  • LIKE сейчас сравнивает строки, используя те же правила сравнения символов, что и =. Если необходим старый режим работы, то можно скомпилировать MySQL с флагом CXXFLAGS=-DLIKE_CMP_TOUPPER.

  • Выражение REGEXP сейчас является независимым от регистра символов для нормальных (не двоичных) строк.

  • При проверке/исправлении таблиц необходимо использовать CHECK TABLE или myisamchk для таблиц MyISAM (".MYI") и isamchk для таблиц ISAM(".ISM").

  • Чтобы обеспечить совместимость файлов mysqldump между версией MySQL 3.22 и версией 3.23, не следует использовать опцию --opt или --all для mysqldump.

  • Проверьте все ваши вызовы функции DATE_FORMAT(), чтобы убедиться, что перед каждым символом формата имеется `%" (в версии MySQL 3.22 и более поздних этот синтаксис уже допускается).

  • mysql_fetch_fields_direct сейчас является функцией (был макрос) и возвращает указатель на MYSQL_FIELD вместо MYSQL_FIELD.

  • Функцию mysql_num_fields() больше нельзя использовать на объектах MYSQL* (сейчас это функция, принимающая MYSQL_RES* в качестве аргумента, так что вместо нее следует применять mysql_field_count()).

  • В версии MySQL 3.22 вывод SELECT DISTINCT ... почти всегда был отсортированным. Чтобы получить отсортированный вывод в версии 3.23, необходимо использовать GROUP BY или ORDER BY.

  • Функция SUM() сейчас возвращает NULL вместо 0 при отсутствии сопоставляемых строк: это сделано для соответствия с ANSI SQL.

  • Операторы AND или OR с величинами NULL теперь будут возвращать NULL вместо 0. В основном, это влияет на запросы, в которых используется NOT на выражениях AND/OR, так как NOT NULL = NULL. LPAD() и RPAD() будут укорачивать результирующую строку, если она длиннее, чем
    аргумент длины.




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


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

8  В тему

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

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

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

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

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

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

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