| Bug #18304 | it's not possible to set collation_connection in the my.cnf | ||
|---|---|---|---|
| Submitted: | 17 Mar 2006 11:56 | Modified: | 23 Mar 2006 10:03 | 
| Reporter: | Arnim Rupp | Email Updates: | |
| Status: | Verified | Impact on me: | |
| Category: | MySQL Server: Charsets | Severity: | S4 (Feature request) | 
| Version: | 5.0.19 | OS: | Solaris (solaris 8 64bit) | 
| Assigned to: | Assigned Account | CPU Architecture: | Any | 
   [17 Mar 2006 11:56]
   Arnim Rupp        
  
 
   [22 Mar 2006 14:17]
   Valeriy Kravchuk        
  Sounds like a feature request for me. Do you argee? As for the question you asked in a private comment, please, note that bugs database is not a proper place to ask questions on how to use MySQL. Ask them in our forums.
   [22 Mar 2006 18:04]
   Arnim Rupp        
  to me it sounds like a bug if there's a feature that defaults to swedish and i can't change when i start the database.
   [23 Mar 2006 10:03]
   Valeriy Kravchuk        
  It is really impossible to set _default_ collation_connection in my.cnf or with option. It will be nice to at least document this properly. But it is surely possibl;e for connection to set the appropriate collation: mysql> show variables like 'collation%'; +----------------------+-------------------+ | Variable_name | Value | +----------------------+-------------------+ | collation_connection | latin1_swedish_ci | | collation_database | latin1_german1_ci | | collation_server | latin1_german1_ci | +----------------------+-------------------+ 3 rows in set (0.00 sec) mysql> set collation_connection=latin1_german1_ci; Query OK, 0 rows affected (0.00 sec) mysql> show variables like 'collation%'; +----------------------+-------------------+ | Variable_name | Value | +----------------------+-------------------+ | collation_connection | latin1_german1_ci | | collation_database | latin1_german1_ci | | collation_server | latin1_german1_ci | +----------------------+-------------------+ 3 rows in set (0.00 sec) So, it is a verified feature request.
   [3 Jan 2008 23:46]
   Benjamin Eberlei        
  The problem with my.cnf or any .my.cnf not taking collation information in my case is as follows. On my Master Server all threads use latin1_german2_ci for their connections and create temporary tables with it. This collation_connection option seems to be lost in replication to slave. So the Slave SQL Thread is running with the default latin1_swedish_ci collation_connection which I cannot change. This leads to replication errors when matching VARCHAR fields with those different collations. I can of course define each field of the created temporary tables using the correct collation, but this shouldn't be an issue if you could change this variable.
   [22 Jan 2008 12:54]
   Sebastian Nohn        
  Any progress on this one?
   [4 Oct 2008 19:37]
   Konstantin Osipov        
  collation_connection global variable is pretty much meaningless -- I don't know how and why you can set it, but if you don't set it, it defaults to global collation_server. The same is with global character_set_connection. So instead of attempting to set collation_connection or character_set_connection, in order to set server defaults you should set collation_server and character_set_server. Global collation_connection will inherit from this. Session collation_connection will inherit from global collation_connection. Example: [mysqld] character-set-server=utf8 collation-server=utf8_general_ci I don't know if this redundancy is documented, but it brings a lot of confusion.
   [4 Oct 2008 19:38]
   Konstantin Osipov        
  Based on acceptable workaround, setting to "Won't fix"
   [5 May 2009 16:43]
   WIjit Anusasananan        
  At start up, some, not all variables take values from character_set_server and collation_server. character_set_database and collation_database take both values accordingly. character_set_connection takes does so but collation_connection doesn't. According to http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html, "collation_connection is important for comparisons of literal strings". Ones should have known that the default collation for utf8 character set is "utf8_general_ci". Any utf8's that are set without collation explicitly set will take this value. From MySQL manual, the only way to set this relationship, eg., to make utf8_unicode_ci a default collation for utf8, is to recompile from source. Other two variables, character_set_client and character_set_result have no variables for their collations. We never know which value it takes. I agree that this is a bug. Setting this to "Won't fix" seems a bit narrow to me. It is true that there are workarounds but capable of setting at start up is preferred still.
   [6 Nov 2010 3:44]
   Jimmy Soho        
  Another workaround is to use SET CHARACTER SET xxx. It will then default to the value of collation_database, which you can define in the mysqld group in my.cnf.
   [12 Mar 2020 11:10]
   MySQL Verification Team        
  https://bugs.mysql.com/bug.php?id=98923 marked as duplicate of this one.
   [20 Jan 2021 13:45]
   Sveta Smirnova        
  Maybe revisit this? Bugs like bug #101220 have the only workaround: change collation_connection?

