Hi, spumer-tm! On Dec 02, spumer-tm@yandex.ru wrote:
Description: <I'm using MariaDB with my gameservers. Server works with db through sourcemod. In my db i'am using utf8 encoding, and all works fine on MariaDB 5.3.8 with params: init-connect = "SET NAMES 'utf8' COLLATE 'utf8_general_ci'" skip-character-set-client-handshake
But after upgrade to 5.5.27 i found a 'bug'. When i'm send query from my game server, over time character_set_connection, character_set_client and character_set_results set to latin1. After enable log i saw:
88 Connect login@domain as anonymous on sourcebans 88 Query SET NAMES 'utf8' COLLATE 'utf8_general_ci' 88 Query SET NAMES latin1 88 Query SHOW VARIABLES LIKE '%character_set%' But my request is only show vars. I assumed that sourcemod is guilty. But skip-character-set-client-handshake is set! I disable it, and try again. At this time i send SET collation_connection = utf8_general_ci and SET NAMES utf8 after my query. But over time it set to latin1 again.
skip-character-set-client-handshake does not help when a client does SET NAMES, it only ignores the charset that the client sends in the connection handshake packet. If the client issues SET NAMES, then it is executed as any regular sql statement. I don't know where your SET NAMES come from, but perhaps it's the sourcemod or the database connector/driver does it automatically when setting up a new connection. You said it worked with 5.3.8. What did you upgrade - only the server binary? Or the client library and tools were upgraded too? Was your sourcemod using 5.5 client library after the upgrade? Regards, Sergei