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]