MySQL4 File ‘c:\mysql\share\charsets\?.conf’ not found (Errcode: 22)的解决方法

   2015-11-07 0
核心提示: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 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的版本。重新刷新显示图片的页面,能够正常显示。

 
标签: not found Errcode
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • Oracle java.sql.SQLException: The Networ
    网络适配器无法建立连接出现这个问题可能是oracl服务没有打开或者是配置的数据库连接的信息:驱动类、连接地址、用户名、密码不对win+r  输入Regedit    查找到Oracle服务
    02-10
  • sql查询报java.sql.SQLException: Column '
    报java.sql.SQLException: Column 'LC_ID' not found 的错误实际上是mysql在hibernate别名的问题我的查询sql是 String sql2 ="select lc.lc_id  lcId from Uum_Logincheck lc ";信息: Server startupin 13441 msselect lc.LC_ID lcId fromUum_Logincheck lc
    02-10
  • java.lang.ClassCastException: oracle.sql.TIM
    http://***.com/questions/13269564/java-lang-classcastexception-oracle-sql-timestamp-cannot-be-cast-to-java-sql-ti
    02-10
  • Mysql远程连接报错:SQL Error (1130): Host '192.168.61.128' is not allowed to connect to this MySQ
    Mysql远程连接报错:SQL Error (1130): Host �
      通过SQLyog连接linux中的MySQL报错问题:SQL Error (1130): Host '192.168.0.18' is not allowed to connect to this MySQL server说明你所连接的用户账户没有远程连接的权限,只能在本机localhost登录需要更改 mysql 数据库里的 user表里的 host字段 把loc
    02-10
  • mysql在spring+mybatis中出现value '0000-
    java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp当日期字段在数据库中可为空,并且其默认值为“0000-00-0000:00:00”,在mysql中作为一个特殊值存在。但是java日期类型不认可转换抛出以上异常。解决方法:
    02-10
  • MySQL案例04:Cause: java.sql.SQLException: C
    今天同事发现程序日志有异常抛出,询问原因,进过排查发现与java的连接参数有关系,具体处理过程如下:一、错误信息"message": "\n### Error updating database. Cause: java.sql.SQLException: Could not retrieve transaction read-only status from server
    02-09
  • 【转】MySQL錯誤:Value '0000-00-00'
    原文地址:MySQL錯誤:Value '0000-00-00' can not be represented as java.sql.Date解決方法 jsp+Tomcat+Mysql開發中采用ResultSet取值時,不管是採用getString()還是採用getDate()時,均會拋出如題所述錯誤.查閱Mysql官方Bug資訊:http://dev.mysql.com/doc/re
    02-09
  • [转载]Oracle数据库 sql%found,sql%notfound,sq
    sql%found,sql%notfound,sql%rowcount 在执行DML(insert,update,delete)语句时,可以用到以下三个隐式游标(游标是维护查询结果的内存中的一个区域,运行DML时打开,完成时关闭,用sql%isopen检查是否打开):sql%found (布尔类型,默认值为null)sql%n
    02-09
  • MySQL查询空字段或非空字段(is null和not null)
    本文介绍在MySQL中,面对值为空(NULL)的字段,应该如何查询。怎么判断一个字段的值为NULL或不为NULL,需要的朋友可以参考下
  • mysql could not be resolved: Name or service
    今天查看mysql日志的时候发现[Warning] IP address '10.0.0.220' could not be resolved: Name or service not known,原来是mysql DNS反解:skip-name-resolve的原因,屏蔽一下就可以了
点击排行