Несколько слов о кодировках в MySQL 4.1 (но не 4.0).

Самое приятное в версии 4.1 то, что кодировки в которых работают клиент и сервер можно указывать отдельно. Поэтому для смены кодировки пересобирать сервер совсем не обязательно.
Настройка клиентов через my.cnf

Если mysql поставить уже бинарный, то в простейшем случае имеет смысл написать в /etc/my.cnf:

[mysqld]
default-character-set=koi8r
character-set-server=koi8r
[client]
default-character-set=koi8r
[mysql]
default-character-set=koi8r

После этого русские буквы будут работать во всех программах, которые знают о существовании /etc/my.cnf. Всем прочим об этом надо сообщать отдельно. Например Perl/DBI узнаёт о расположении конфигурационного файла так:

my $db=DBI->connect('DBI:mysql:cgi_mail:localhost:mysql_read_default_file=/etc/my.cnf',
'root', '');

Можно создать отдельный файл, скажем /etc/my.cnf-win. Написать в нём примерно следующее:

[perl]
default-character-set=cp1251

После этого можно соединиться с базой, указав эти настройки:

my $db=DBI->connect(
'DBI:mysql:cgi_mail:localhost:mysql_read_default_file=/etc/my.cnf-win;'.
'mysql_read_default_group=perl', 'root', '')