Поиск

Обновление символьных наборов от версии MySQL4.0

Итак, что же насчет обновления более старых версий MySQL? MySQL 4.1 почти со­вместим сверху вниз с MySQL 4.0 и более ранними версиями по той простой причине, что практически все эти средства являются новыми, а поэтому нечему конфликтовать со старыми версиями. Однако имеются некоторые отличия и несколько моментов, которые следует принимать во внимание.

Наиболее важный момент: "набор символов MySQL 4.0" включал в себя свойства и "набора символов MySQL 4.1", и "порядка сопоставления MySQL 4.1". Вам придется забыть об этом. Отныне мы не связываем символьный набор и порядок сопоставления в один смешанный объект.

Национальные символьные наборы трактуются в MySQL 4.1 специальным образом. NCHAR - это не то же самое, что CHAR, а литералы N'...' - не то же самое, что литералы 1 i

И, наконец, изменился формат файлов, хранящих информацию о символьных наборах и порядках сопоставления. Убедитесь, что вы переустановили каталог /share/mysql/charsets, в котором находятся новые конфигурационные файлы.

Если вы хотите запустить mysqld из дистрибутива 4.1.x с данными, созданными в MySQL 4.0, то вы должны стартовать сервер с тем же набором символов и порядком сопоставления. В этом случае не придется выполнять переиндексацию ваших данных.

Есть два способа сделать это:

shell ./configure -with-charset=... -with-collation=...

shell ./mysqld default-character-set=... —default-collation=...

Если вам нужен mysqld, например, с символьным набором MySQL 4.0 danish, то вы должны теперь использовать символьный набор latinl и порядок сопоставления

latinl_danish_ci:

shell ./configure with-charset=latinl \

-~with-collation=lati nl_dan i s h_ci shell ./mysqld —default-character-set=latinl \

—de fault-collation=lati nl__dani sh_ci

Используйте табл. приведенную в разделе Cимвольные наборы и соответствующие пары"символьный набор/порядок сопоставления" версии 4.1, чтобы найти старые имена наборов символов MySQL 4.0 и их соответствие новым парам набор/порядок.

Если в таблице latinl версии 4.0 у вас хранятся данные не в наборе latinl, и вы хотите преобразовать определения столбцов таблицы так, чтобы они отражали действительный символьный набор данных, обратитесь к инструкциям, представленным в разделе Преобразование символьных столбцов версии 4.0. в формат версии 4.1.