今更DBICでなくCDBIネタ。事情によりmy.cnfを書き換える事ができないのでset names utf8しようとしたらやり方が判らず、しばらくいらいらしたのでメモ。
環境はMySQL 5.0.18 + Class::DBI 3.000014
package MyApp::Model::CDBI;
use strict;
use base qw[ Catalyst::Model::CDBI Class::DBI::mysql ];
__PACKAGE__->config(
    dsn               => 'DBI:mysql:dbname=データベース名',
    user              => 'データベースユーザ',
    password      => 'データベースパスワード',
    options         => {},
    relationships => 1
);
1;
package MyApp::Model::CDBI::Users;
use strict;
use base 'MyApp::Model::CDBI';
__PACKAGE__->db_Main->do( q(SET NAMES utf8) );
__PACKAGE__->set_up_table('users');
1;
上記はCatalystのModel例。
ちなみにDBICは下記のような感じでいけるらしい。
__PACKAGE__->connection(
    'dbi:mysql:foo',
    'root',
    {
        on_connect_do => ['SET NAMES utf8'],
    },
);