Chapter 131. Upgrading from MySQL 4.0

Table of Contents

4.0 Character Sets and Corresponding 4.1 Character Set/Collation Pairs

Now, what about upgrading from older versions of MySQL? MySQL 4.1 is almost upward compatible with MySQL 4.0 and earlier for the simple reason that almost all of the features are new, so there's nothing in earlier versions to conflict with. However, there are some differences and a few things to be aware of.

Most important: The ``MySQL 4.0 character set'' has the properties of both ``MySQL 4.1 character sets'' and ``MySQL 4.1 collations.'' You will have to unlearn this. Henceforth we will not bundle character set / collation properties in the same conglomerate object.

There is a special treatment of national character sets in MySQL 4.1. NCHAR is not the same as CHAR, and N'...' literals are not the same as '...' literals.

Finally, there is a different file format for storing information about character sets and collations. Make sure you have reinstalled the /share/mysql/charsets/ directory containing the new configuration files.

If you want to start mysqld from a 4.1.x distribution with data created by MySQL 4.0, you should start the server with the same character set and collation. In this case you won't need to reindex your data.

There are two ways to do so:

shell> ./configure --with-character-set=... --with-collation=...
shell> ./mysqld --default-character-set=... --default-collation=...

If you used mysql with, for example, the MySQL 4.0 danish character set, you should now use the latin1 character set and the latin1_danish_ci collation:

shell> ./configure --with-character-set=latin1
           --with-collation=latin1_danish_ci
shell> ./mysqld --default-character-set=latin1
           --default-collation=latin1_danish_ci

Use the table shown in the next section to find old 4.0 character set names and their 4.1 character set/collation pair equivalents.

4.0 Character Sets and Corresponding 4.1 Character Set/Collation Pairs

ID4.0 Character Set4.1 Character Set4.1 Collation
1 big5big5big5_chinese_ci
2 czechlatin2latin2_czech_ci
3 dec8dec8dec8_swedish_ci
4 doscp850cp850_general_ci
5 german1latin1latin1_german1_ci
6 hp8hp8hp8_english_ci
7 koi8_rukoi8rkoi8r_general_ci
8 latin1latin1latin1_swedish_ci
9 latin2latin2latin2_general_ci
10 swe7swe7swe7_swedish_ci
11 usa7asciiascii_general_ci
12 ujisujisujis_japanese_ci
13 sjissjissjis_japanese_ci
14 cp1251cp1251cp1251_bulgarian_ci
15 danishlatin1latin1_danish_ci
16 hebrewhebrewhebrew_general_ci
17 win1251(removed)(removed)
18 tis620tis620tis620_thai_ci
19 euc_kreuckreuckr_korean_ci
20 estonialatin7latin7_estonian_ci
21 hungarianlatin2latin2_hungarian_ci
22 koi8_ukrkoi8ukoi8u_ukrainian_ci
23 win1251ukrcp1251cp1251_ukrainian_ci
24 gb2312gb2312gb2312_chinese_ci
25 greekgreekgreek_general_ci
26 win1250cp1250cp1250_general_ci
27 croatlatin2latin2_croatian_ci
28 gbkgbkgbk_chinese_ci
29 cp1257cp1257cp1257_lithuanian_ci
30 latin5latin5latin5_turkish_ci
31 latin1_delatin1latin1_german2_ci