Bug #35356 session character_set_database different from global character_set_database
Submitted: 18 Mar 2008 5:07 Modified: 19 Mar 2008 19:05
Reporter: Rizwan Maredia Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Compiling Severity:S4 (Feature request)
Version:5.1.22 OS:Windows
Assigned to: CPU Architecture:Any
Tags: character_set_database

[18 Mar 2008 5:07] Rizwan Maredia
Description:
session character_set_database does not gets value from global character_set_database in new connections. All other variables which are both global and session usually are same for a new connection.

How to repeat:
Here is how we can test it in mysql test environment.

Sample Code:

SET @@global.character_set_database = utf8;
connect (con1,localhost,root,,,,);
connection con1;
SELECT @@global.character_set_database;
SELECT @@session.character_set_database;

Output:

SET @@global.character_set_database = utf8;
SELECT @@global.character_set_database;
@@global.character_set_database
utf8
SELECT @@session.character_set_database;
@@session.character_set_database
latin1

Suggested fix:
Session and global values should be same in a new connection.
[19 Mar 2008 19:05] Susanne Ebrecht
Thank you for your bug report. This issue has already been fixed in the latest released version of that product, which you can download at

  http://www.mysql.com/downloads/

mysql> select version();
 5.1.23-rc-debug

mysql> show global variables like '%char%';
...
character_set_database   | latin1
...

mysql> show local variables like '%char%';
...
character_set_database   | latin1
...

mysql> SET @@global.character_set_database = utf8;
mysql> \q
Bye

Start CLI again ...

mysql> select @@session.character_set_database;
utf8

mysql> select @@global.character_set_database;
utf8
[28 Apr 2008 16:51] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/46128