Hi,

I have mysql 4.0  db with configuration:
set-variable = default-character-set=latin2
set-variable = character-set=latin2

now I'm trying to migrate to mysql 4.1.12 My current config is:
character-set-server=latin2
collation-server=latin2_general_ci

The problem is connection/reply/client-character set. mysql 4.1 by default 
uses 'latin1' so in all queries (from previously latin2 mysql 4.0 database) I 
don't have latin2 characters just '?' chars. That's obvious because due to 
default latin1 in 4.1.

SET NAMES 'latin2' from client side of coruse cures whole problem but... I 
can't fix every possible application that my users have installed (and if 
there are thousands of users this is simply impossible).

What's the proper way of dealing with this problem? I've tried to use some 
nasty hacks like init-connect="SET NAMES latin2" and this half-works - I see 
latin2 characters in server responses... but it breaks for example phpmyadmin 
(characters are broken in results; when I drop init-connect hack phpmyadmin 
works nicely). So init-connect isn't usable.

Now when connecting with mysql command line client then I by default get 
latin1 but can change easily to latin2 using 
[mysql]
default-character-set=latin2
in .my.cnf file. That's great but this works only for mysql cmd line client 
_only_ while my primary concern is php.

Now is the funny part, there is no .my.cnf file, I connect with mysql cmdline.
mysql> \s
--------------
mysql  Ver 14.7 Distrib 4.1.12, for pld-linux-gnu (powerpc) using readline 4.3

Connection id:          2
Current database:
Current user:           [EMAIL PROTECTED]
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         4.1.12-log
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    latin2
Db     characterset:    latin2
Client characterset:    latin1
Conn.  characterset:    latin1
UNIX socket:            /var/lib/mysql/mysql.sock
Uptime:                 34 min 35 sec

Threads: 1  Questions: 12  Slow queries: 0  Opens: 11  Flush tables: 1  Open 
tables: 0  Queries per second avg: 0.006
--------------

mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | latin2                     |
| character_set_results    | latin1                     |
| character_set_server     | latin2                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
7 rows in set (0.00 sec)

As you can see client/connection/results are latin1 BUT:

mysql> select @@global.character_set_client, 
@@global.character_set_connection, @@global.character_set_database, 
@@global.character_set_results, @@global.character_set_results, 
@@global.character_set_server;
+-------------------------------+-----------------------------------+---------------------------------+--------------------------------+--------------------------------+-------------------------------+
| @@global.character_set_client | @@global.character_set_connection | 
@@global.character_set_database | @@global.character_set_results | 
@@global.character_set_results | @@global.character_set_server |
+-------------------------------+-----------------------------------+---------------------------------+--------------------------------+--------------------------------+-------------------------------+
| latin2                        | latin2                            | latin2    
                      
| latin2                         | latin2                         | latin2      
                  
|
+-------------------------------+-----------------------------------+---------------------------------+--------------------------------+--------------------------------+-------------------------------+
1 row in set (0.00 sec)

now it tells me that these are latin2!?

Anyway primary question is how to deal with characters in mysql 4.0->4.1 
conversion (how to get latin2 as default in client connections)? I've talked 
with few people on #mysql on freenode but we haven't seen any solution.

-- 
Arkadiusz Miƛkiewicz                    PLD/Linux Team
http://www.t17.ds.pwr.wroc.pl/~misiek/  http://ftp.pld-linux.org/

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to