Bug #10818 File '/usr/share/mysql/charsets/?.conf' not found (Errcode: 2)
Submitted: 24 May 2005 8:51 Modified: 25 Dec 2006 5:53
Reporter: NOT_FOUND NOT_FOUND Email Updates:
Status: No Feedback Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:MySQL 4.1+ OS:Linux (Fedora Core 3)
Assigned to: CPU Architecture:Any

[24 May 2005 8:51] NOT_FOUND NOT_FOUND
Description:

When using a default install on Fedora Core 3 with a charset that is not compiled in, the client gives the following warning, even if the file is indeed preset:

File '/usr/share/mysql/charsets/?.conf' not found (Errcode: 2)
Character set '#30' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index' file

The problem is caused by:
a) The lack of an Index file
b) File extension being .xml while client looks for .xml.conf

I have seen this problem on web quite a lot, without anyone coming up with a solution, so I guess it is quite common. I also saw a similar (already reported) bug on MySQL web site describing this, but it was on windows platform and had another solution (related to UTF-8). Therefore I decided to open a new bug.

How to repeat:
- Install Linux RPM package on Fedora Core 3 (tho I see on google other platforms including other linux distros and windows have the same problem)
- Change default-charset to latin5 (or anything that is not compiled in, but is preset in /usr/share/mysql/charsets)
- Try to access a database using a PHP script or something similar.
- Script will run, but will produce the warning.

Suggested fix:
My workaround was:

1) Create a file named "Index" under /usr/share/mysql/charsets that looks like this:
latin5.xml 30

2) To avoid extension problem, link the original latin5.xml file as latin5.xml.conf file.
cd /usr/share/mysql/charsets
ln -s latin5.xml latin5.xml.conf

This solved the problem, however, is only a workaround. I suggest to:
a) include the Index file in further distributions or move whole functionality to the Index.xml file
b) Fix the file extension problem by making client look for the filename specified in Index file, without appending an additional .conf extension.
[6 Jul 2005 9:50] Aleksey Kishkin
could you please to provide here output of

mysql -V
[12 Jul 2005 17:44] Petr Koukal
I would like to add also the same problem description. I am using for testing IIS on WinXP Prof. Czech version. Not so long time ago I've installed MySQL 4.2 version and during run of PHP code i get following message:

File 'c:\mysql\share\charsets\?.conf' not found (Errcode: 2) Character set '#9' is not a compiled character set and is not specified in the 'c:\mysql\share\charsets\Index' file

Database if UTF8 with collation UTF8-general-ci

if i run mysql -v:    
mysql  Ver 14.7 Distrib 4.1.12a, for Win32 (ia32)
[6 Aug 2005 23:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
[8 Nov 2005 6:56] Walery Studennikov
Yes, I can confirm the same problem with MySQL 5.0.15 (/opt/mysql/MySQL-server-5.0.15-0.glibc23.i386.rpm)

My output of "mysql -V" command is:
---
mysql  Ver 14.12 Distrib 5.0.15, for pc-linux-gnu (i686) using readline 5.0
---
[8 Nov 2005 6:57] Walery Studennikov
Please, open this bug, because it is still actual
[8 Nov 2005 8:48] NOT_FOUND NOT_FOUND
This problem seems to have a fix with MySQL server 5.0+. The ini value:
character-sets-dir directive, when set in my.cnf, correct the problem. However, since this value is not set by default, and since mysql, mysqldump etc still cant find the correct place by default, the problem still remains.

Solution would be quite simple. Either:
a) Make clients look for the mysql/share folder as a relative path such as "../share/charset" by default
or
b) Set the value in my.cnf at install time.

I personally would do both, but any of those would fix things nicely.

As I said, this only works with 5.0+ because 4.1 doesnt have the character-sets-dir value.

On another note, this is not specific to fedora core 3. Fedore Core 4 (basically the RPM distribution downloaded from MySQL.com) and Windows is affected too.
[10 Nov 2005 13:47] Valeriy Kravchuk
I've tried the following actions to repeat the problem you described, first on latest 5.0.17-BK build:

[openxs@Fedora 5.0]$ bin/mysql --default-character-set=latin5 -uroot test
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11 to server version: 5.0.17

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show variables like 'character_set%';
+--------------------------+--------------------------------------------+
| Variable_name            | Value                                      |
+--------------------------+--------------------------------------------+
| character_set_client     | latin5                                     |
| character_set_connection | latin5                                     |
| character_set_database   | latin1                                     |
| character_set_results    | latin5                                     |
| character_set_server     | latin1                                     |
| character_set_system     | utf8                                       |
| character_sets_dir       | /home/openxs/dbs/5.0/share/mysql/charsets/ |
+--------------------------+--------------------------------------------+
7 rows in set (0,01 sec)

and then - with 5.0.15:

[openxs@Fedora 5.0]$ bin/mysql --default-character-set=latin5 -uroot -h127.0.0.1 -P3306 test
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 5.0.15-standard

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show variables like 'character_set%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin5                     |
| character_set_connection | latin5                     |
| character_set_database   | latin1                     |
| character_set_results    | latin5                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
7 rows in set (0,00 sec)

mysql> exit
Bye
[openxs@Fedora 5.0]$ bin/mysql -V
bin/mysql  Ver 14.12 Distrib 5.0.17, for redhat-linux-gnu (i686) using  EditLine
 wrapper
[openxs@Fedora 5.0]$ rpm -q -a | grep MySQL
MySQL-server-5.0.15-0.glibc23
[openxs@Fedora 5.0]$ uname -a
Linux Fedora 2.4.22-1.2115.nptl #1 Wed Oct 29 15:42:51 EST 2003 i686 i686 i386 GNU/Linux

So, I see no problems with character_sets_dir in both fresh build from sources and in the 5.0.15 RPM. 

Please, send the exact steps you perform to get the problem you described.
[11 Dec 2005 0:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
[23 Nov 2006 14:07] Pierre
This bug is clearly real, I have logs full of :

File '/usr/share/mysql/charsets/?.conf' not found (Errcode: 2)
Character set '#33' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index' file

# mysql -V
mysql  Ver 14.7 Distrib 4.1.11, for pc-linux-gnu (i686)
[24 Nov 2006 8:16] Valeriy Kravchuk
Pierre,

Please, try to repeat with a newer version, 4.1.21, and inform about the results. Nobody will be able to fix bugs in 4.1.11, even if there are any...
[24 Nov 2006 9:19] NOT_FOUND NOT_FOUND
You might want to check earlier comments on this bug. Several confirmations already exist for both 4.1 and 5.0 versions.
[25 Nov 2006 5:53] Valeriy Kravchuk
I checked all the comments. Here is the list of exact versions mentioned:

4.1+, Linux
4.1.12a, for Win32 (ia32)
5.0.15, Linux
4.1.11, Linux

Collations (character set)/OS: 

latin5/Linux
UTF8 with collation UTF8-general-ci

So, please, try to repeat with a newer version, 4.1.21, and inform about the
results. And note that I was not able to repeat the behaviour described on 5.0.x, long time ago.
[26 Dec 2006 0:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".