оказывается, DBD::mysql позволяет использовать некоторые дополнительные переменные при соединении, как то mysql_read_default_group и mysql_read_default_file. как это может помочь мне для установки кодировки данных для клиента:
dbitest.pl:
#!/usr/bin/perl
use strict;
use DBI;
print `mysql -e 'show variables' | grep char`;
print "\n";
my $conn_str = join ';',
'DBI:mysql:database=mysql',
'mysql_read_default_group=perl',
'mysql_read_default_file=/home/apla/my.cnf';
my $d = DBI->connect($conn_str, "***", "***");
my $s = $d->prepare ('show variables like "char%"');
$s->execute;
my $vars = $s->fetchall_arrayref;
foreach (@$vars) {
print "$_->[0] => $_->[1]\n";
}
my.cnf
[perl]
default-character-set=cp1251
соответственно, group это то, что находится внутри квадратных скобок, то есть [group], а file - это если вы не хотите использовать стандартную конфигурацию, то можете использовать свою собственную.
результат:
perl dbitest.pl
character_set_client latin1
character_set_connection latin1
character_set_database latin1
character_set_filesystem binary
character_set_results latin1
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
character_set_client => cp1251
character_set_connection => cp1251
character_set_database => latin1
character_set_filesystem => binary
character_set_results => cp1251
character_set_server => latin1
character_set_system => utf8
character_sets_dir => /usr/share/mysql/charsets/
mysql 5.0.26
1 comment:
Post a Comment