| Bug #29665 | init_connect in config file prevents client SET NAMES | ||
|---|---|---|---|
| Submitted: | 9 Jul 2007 22:13 | Modified: | 11 Jul 2007 11:25 |
| Reporter: | Peter Laursen (Basic Quality Contributor) | Email Updates: | |
| Status: | Can't repeat | Impact on me: | |
| Category: | MySQL Server | Severity: | S2 (Serious) |
| Version: | 5.0.37 ... probably any | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | qc | ||
[9 Jul 2007 22:13]
Peter Laursen
[10 Jul 2007 10:28]
Sveta Smirnova
Thank you for the report. I can not repeat described behaviour using dollowing test loadable by MySQL test suite: create user mysqltest1@localhost; grant all privileges on test.* to mysqltest1@localhost; connect (con1,localhost,mysqltest1,,); connection con1; show variables like '%char%'; set names 'utf8'; show variables like '%char%'; bug29665-master.opt contains: --set-variable=init_connect="SET NAMES 'cp1251'" Result: =====mysql-5.0-community===== =====bug29665===== create user mysqltest1@localhost; grant all privileges on test.* to mysqltest1@localhost; show variables like '%char%'; Variable_name Value 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 /users/ssmirnova/src/mysql-5.0-community/sql/share/charsets/ set names 'utf8'; show variables like '%char%'; Variable_name Value character_set_client utf8 character_set_connection utf8 character_set_database latin1 character_set_filesystem binary character_set_results utf8 character_set_server latin1 character_set_system utf8 character_sets_dir /users/ssmirnova/src/mysql-5.0-community/sql/share/charsets/ If you think my test is not correct, fell free to fix it and reopen the report.
[10 Jul 2007 11:39]
Peter Laursen
Ok .. I would like to ask you to try this (I am somewhat disabled as I cannot operate cyrillic locale and keyboard)
1) start server with the init_connect command in configuration.
2) create a small table with just a few string columns. Use default charset cp1251 for the table (I do not think that matters actually, but the customer uses cp1251 a default charset everywhere (server, databases, tables).
3) set names utf8
4) insert into the_table values ({some cyrillic strings})
5) select * from the_table. Does it display the strings that were inserted?
You must of course use a client supporting utf8. I do not think 'mysql' client on Windows does!
[11 Jul 2007 11:25]
Sveta Smirnova
Thank you for the feedback.
I still get correct results:
create user mysqltest1@localhost;
grant all privileges on test.* to mysqltest1@localhost;
connect (con1,localhost,mysqltest1,,);
connection con1;
create table t1(f1 varchar(255)) DEFAULT CHARSET=cp1251;
#it contains query insert into t1 values('тест'); in CP1251
source $HOME/bug29665.sql;
show variables like '%char%';
set names 'utf8';
show variables like '%char%';
insert into t1 values('другой');
select * from t1;
Result:
<skip>
select * from t1;
f1
тест
другой
