Problem: IO thread fails to connect to master if servers are configured with
special character sets like utf16, utf32, ucs2. Analysis: MySQL server does not support few special character sets like utf16,utf32 and ucs2 as "client's character set"(eg: utf16,utf32, ucs2). It is known limitation listed in the documentation http://dev.mysql.com/doc/refman/5.5/en/charset-connection.html. The default value for default-character-set parameter is 'auto' which means that if the server's character set is not supported, then server automatically changes client's character set to predefined character-set which is 'latin1' in the current code. Eg: $ ./mysql -uroot -S$SOCKET_FILE --default-character-set=utf16 ERROR 1231 (42000): Variable 'character_set_client' can't be set to the value of 'utf16' $ ./mysql -uroot -S$SOCKET_FILE will be successfully connected to server with 'latin1' as default client side character set. When IO thread is trying to connect to Master, it sets server's character set as client's character set. When Slave server is started with these special character sets, IO thread (which is like a connection to Master) fails because of the above said limitation. Fix: Now even IO thread also behaves the same as a regular client behaves. i.e., If server's character set is not supported as client's character set, then set default's client character set(latin1) as client's character set.
Showing
Please register or sign in to comment