PHP 4.4.1+MySQL 5.1的環境下出現了如下的提示:
復制代碼 代碼如下:
File ‘c:\mysql\share\charsets\?.conf' not found (Errcode: 22) Character set ‘#33′ is not a compiled character set and is not specified in the ‘c:\mysql\share\charsets\Index' file
查閱一番後基本可以確定原因為低版本的PHP和高版本的MySQL之間的兼容性導致的。
最簡單的辦法是升級PHP到PHP5.3版本即可搞定,未知測試。因服務器不是我配的,不敢亂動,怕搞出麻煩,於是保留低版本的PHP,另尋其他方法。
以下試驗了多種網絡上查到的解決方法,供大家參考:
有說是MySQL的配置中basedir沒設好,檢查了一下MySQL安裝目錄下的my.ini,basedir正確,不是這個原因。
有說把MySQL的配置my.ini中的default-character-set=utf8前面加#注釋掉就搞定的,我改了,無效。
有說把MySQL安裝目錄\share\charsets目錄下的所有文件復制到c:\mysql\share\charsets\下的,我復制了,一樣無效。
最後找到一種方法,把PHP.ini中的output_buffering = Off 改為 output_buffering = On,上面的提示不見了,搞定。
知其然,不知其所以然。哪位大蝦知道的,煩請告知,小弟謝過!
暫時解決...\charsets\?.conf' not found (Errcode: 22) Character set '#33'
php程序提示以下類似的錯誤的信息: File 'c:\mysql\share\charsets\?.conf' not found (Errcode: 22) Character set '#33' is not a compiled character set and is not specified in the 'c:\mysql\share\charsets\Index' file 這個錯誤沒有影響程序的運行,但是影響界面。
大概的原因應該是因為Mysql 4.1以上的版本對編碼規則改變導致了好多大大小小的問題,如果服務器的默認字符集是UTF8,DOS的窗口就會出現此類提示。
出現這樣問題的人不在少數,但是從搜索的結果來看,最後解決這個問題的人是極少數的,據說有人用了php5就解決了。但是我不願意升級到php5,最後花了好多時間才看到一個人的好建議(因為在公司搜索的時候沒有記錄,所以出處無從考究了),那個人大概的意思是從Myslq官方網站看到以下信息: "後來在Mysql的官方網站上看有人說,錯誤提示信息不是說要找那個目錄的某個文件嗎,那就去建立一個目錄"! 更好的地方是,那個貼子還提供了相關的文件,我特地裝進U盤帶了回來,共享一下! PS:解壓以後把mysql這個文件夾中的Charsets目錄替換mysql下的Charsets目錄就行了! 壓縮包下載:點這裡下載附件(mysql.zip)
apache+php+mysql中圖片不能顯示問題
做了一個顯示數據庫中圖片的php網頁,但是顯示不出來。查Apache中的log,發現有如下提示:
File 'c:\mysql\share\charsets\?.conf' not found (Errcode: 2)
Character set '#24' is not a compiled character set and is not specified in the 'c:\mysql\share\charsets\Index' file
File 'c:\mysql\share\charsets\?.conf' not found (Errcode: 2)
Character set '#24' is not a compiled character set and is not specified in the 'c:\mysql\share\charsets\Index' file
File 'c:\mysql\share\charsets\?.conf' not found (Errcode: 2)
解決辦法:
現確定phpinfo()顯示的mysql的版本。如果顯示的版本和機器裡正在運行的mysql的版本不一樣就說明是有問題了。我機器上運行的是4.1版本的,但是顯示的是3.23.49版本。可能是以前安裝的mysql版本沒有卸載完全。重新編譯PHP,
./configure --with-mysql=/${MYSQL} .再次查看phpinfo()裡mysql的版本。重新刷新顯示圖片的頁面,能夠正常顯示。