Bug #6708 Character set not found when connecting with PHP on Apache
Submitted: 18 Nov 2004 22:22 Modified: 11 Jan 2005 4:53
Reporter: Gabriel Schuster Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:Ver 14.7 Distrib 4.1.7, for Win95/Win98 OS:Windows (Windows 2000)
Assigned to: CPU Architecture:Any

[18 Nov 2004 22:22] Gabriel Schuster
Description:
When connecting to the server with PHP, the following error message occurs in apache's error_log:
File 'C:\mysql\\share\charsets\?.conf' not found (Errcode: 2)
Character set '#33' is not a compiled character set and is not specified in the 'C:\mysql\\share\charsets\Index' file

Checked with Windows' file search and found that there is a path 'C:\mysql' hardcoded into following files:
bin/mysqld-debug.exe
bin/mysqld-max-nt.exe
bin/mysqld-max.exe
bin/mysqld-nt.exe
bin/mysqld.exe
bin/winmysqladmin.exe
Embedded/DLL/debug/libmysqld.dll
Embedded/DLL/release/libmysqld.dll

How to repeat:
Connect with a PHP script.

Suggested fix:
Check, fix and recompile the mentioned files.
Think using the path specified in configuration file will cure this error.
[11 Jan 2005 4:53] Jorge del Conde
Hi!

This error occures in the Apache error log, so the problem is in Apache, not MySQL.

I created a test-case using PHP & MySQL and was unable to get any charset errors, and as expected mysql's error log was empty.
[11 Jan 2005 4:55] Jorge del Conde
I forgot ...

The reason why you see 'C:\mysql' hard-coded in our binaries is because its the default installation directory (where it searches for databases, charsets, etc).  If you have a correct my.ini configuration, mysql will never use that directory at all.
[25 Oct 2005 1:03] bailing wu
This problem accurred in my window server too.
My develop envirnment is windows xp+apache 2.0.54+php4.4+mysql 4.1.11

In my httpd.conf,I set defaultlanguage = utf-8
-------------------------
DefaultLanguage UTF-8
----------------------------

But my apache's error_log is filled with 
File 'c:\mysql\share\charsets\?.conf' not found (Errcode: 2)
Character set '#33' is not a compiled character set and is not specified in the 'c:\mysql\share\charsets\Index' file

here is part of my configuration file of mysql,you can see I set the path

My mysql is setup into D:/www/MySQL41/
---------------------------------------------
[mysqld]

# The TCP/IP Port the MySQL Server will listen on
port=3306
#Path to installation directory. All paths are usually resolved relative to this.
basedir="D:/www/MySQL41/"
#Path to the database root
datadir="D:/www/MySQL41/Data/"

# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=utf8
------------------------------------

I checked the share charsets directory  and find no file match my character-set utf8
my share directory is D:\www\MySQL41\share\charsets
here is it's file lists

++++++++++++++++++++++++++++
D:/www/MySQL41/share/charsets/armscii8.xml
D:/www/MySQL41/share/charsets/ascii.xml
D:/www/MySQL41/share/charsets/cp1250.xml
D:/www/MySQL41/share/charsets/cp1251.xml
D:/www/MySQL41/share/charsets/cp1256.xml
D:/www/MySQL41/share/charsets/cp1257.xml
D:/www/MySQL41/share/charsets/cp850.xml
D:/www/MySQL41/share/charsets/cp852.xml
D:/www/MySQL41/share/charsets/cp866.xml
D:/www/MySQL41/share/charsets/dec8.xml
D:/www/MySQL41/share/charsets/geostd8.xml
D:/www/MySQL41/share/charsets/greek.xml
D:/www/MySQL41/share/charsets/hebrew.xml
D:/www/MySQL41/share/charsets/hp8.xml
D:/www/MySQL41/share/charsets/Index.xml
D:/www/MySQL41/share/charsets/keybcs2.xml
D:/www/MySQL41/share/charsets/koi8r.xml
D:/www/MySQL41/share/charsets/koi8u.xml
D:/www/MySQL41/share/charsets/languages.html
D:/www/MySQL41/share/charsets/latin1.xml
D:/www/MySQL41/share/charsets/latin2.xml
D:/www/MySQL41/share/charsets/latin5.xml
D:/www/MySQL41/share/charsets/latin7.xml
D:/www/MySQL41/share/charsets/macce.xml
D:/www/MySQL41/share/charsets/macroman.xml
D:/www/MySQL41/share/charsets/README
D:/www/MySQL41/share/charsets/swe7.xml
++++++++++++++++++++++++++++

here is the directory lists of D:/www/MySQL41/share,you cann't find zh_utf8,simplified chinese or zh_tw 
+++++++++++++++++++++++++++++++++++
D:/www/MySQL41/share//charsets
D:/www/MySQL41/share//czech
D:/www/MySQL41/share//danish
D:/www/MySQL41/share//dutch
D:/www/MySQL41/share//english
D:/www/MySQL41/share//estonian
D:/www/MySQL41/share//french
D:/www/MySQL41/share//german
D:/www/MySQL41/share//greek
D:/www/MySQL41/share//hungarian
D:/www/MySQL41/share//italian
D:/www/MySQL41/share//japanese
D:/www/MySQL41/share//japanese-sjis
D:/www/MySQL41/share//korean
D:/www/MySQL41/share//norwegian
D:/www/MySQL41/share//norwegian-ny
D:/www/MySQL41/share//polish
D:/www/MySQL41/share//portuguese
D:/www/MySQL41/share//romanian
D:/www/MySQL41/share//russian
D:/www/MySQL41/share//serbian
D:/www/MySQL41/share//slovak
D:/www/MySQL41/share//spanish
D:/www/MySQL41/share//swedish
D:/www/MySQL41/share//ukrainian

+++++++++++++++++++++