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

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的版本。重新刷新显示图片的页面,能够正常显示。

(0)

相关推荐

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

    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和高版本的M

  • mysql 主从数据不一致,提示: Slave_SQL_Running: No 的解决方法

    本文实例讲述了mysql 主从数据不一致,提示: Slave_SQL_Running No 的解决方法.分享给大家供大家参考,具体如下: 在slave服务器上通过如下命令 mysql> show slave status\G; 显示如下情况: Slave_IO_Running: Yes Slave_SQL_Running: No 表示slave不同步 解决方法一(忽略错误,继续同步): 1.先停掉slave mysql> stop slave; 2.跳过错误步数,后面步数可变 mysql>

  • 在Ubuntu 16.10安装mysql workbench报未安装软件包 libpng12-0错误的解决方法

    1.安装mysql workbench,提示未安装软件包 libpng12-0 下载了MySQL Workbench 6.3.8 在安装的时候报错: sudo dpkg -i mysql-workbench-community-6.3.8-1ubu1604-amd64.deb 提示:未安装软件包 libpng12-0. 然而使用sudo apt-get -f install后还是报错,后来找到下载libpng12-0的地址并安装. 2.下载安装libpng12-0 下载libpng12-0地址:

  • Mysql删除重复数据保留最小的id 的解决方法

    在网上查找删除重复数据保留id最小的数据,方法如下: DELETE FROM people WHERE peopleName IN ( SELECT peopleName FROM people GROUP BY peopleName HAVING count(peopleName) > 1 ) AND peopleId NOT IN ( SELECT min(peopleId) FROM people GROUP BY peopleName HAVING count(peopleName) >

  • Mysql非安装版使用步骤及忘记密码解决方法

    第一步 将压缩包解压到相应的磁盘下. 第二步 打开cmd进入解压后的文件夹的bin目录下,运行mysqld -install. 第三步 开启服务:cmd进入解压的文件夹下,执行net start mysql. 第四步 安装图像界面navicat. 忘记密码的解决方法: 1. 管理员登陆系统,停止MySQL服务或者结束mysqld 进程 2. 进入命令行,来到mysql的安装目录.假设安装目录为 d:\mysql\ , CMD进入 命令行 3. 运行 d:\MYSQL\bin\mysqld --s

  • MySQL中Union子句不支持order by的解决方法

    本文实例讲述了MySQL中Union子句不支持order by的解决方法.分享给大家供大家参考,具体如下: 我对DB知之甚少,这问题只在MySQL遇到,不知道别的DBMS是不是也如此. 问题是这样的,我打算在一个表里获得与某一行记录相邻的两行,并且想通过union一起取出来,所以这么写: select id,title from subjects where id>#some_id# order by id limit 1 union select id,title from subjects

  • Mysql 忘记root密码和修改root密码的解决方法(小结)

    一 修改root密码的三种办法 方法1: 用SET PASSWORD命令 首先登录MySQL. 格式:mysql> set password for 用户名@localhost = password('新密码'); 例子:mysql> set password for root@localhost = password('123'); 方法2:用mysqladmin 格式:mysqladmin -u用户名 -p旧密码 password 新密码 例子:mysqladmin -uroot -p12

  • MySQL重置root密码提示"Unknown column ‘password"的解决方法

    晚上打开MAC,发现root帐户突然不能正常登陆MySQL,于是打算重置密码,看了几篇文章,竟然重置不成功,总是得到Unknown column 'password'的错误,看了user的表结构也确实没有该字段了.经查发现是MySQL升级后将字段名给改了,password名称改为authentication_string了.知道原因后,按照如下命令就可以成功重置root密码了. $sudo mysql.server stop #先关闭正常的MySQL服务 $sudo mysqld_safe --

  • MySQL每晚定时弹出一个taskeng.exe的解决方法

    这个问题是,Windows计划服务,关闭就好啦 开始/附件/系统工具/任务计划,把mysql的定时任务计划取消就可以了 总结 以上所述是小编给大家介绍的MySQL每晚定时弹出一个taskeng.exe的解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的.在此也非常感谢大家对我们网站的支持!

  • mysql一对多关联查询分页错误问题的解决方法

    xml问价中查询数据中包含list,需要使用collection <resultMap id="XX" type="com.XXX.XXXX"> <id column="o_id" jdbcType="BIGINT" property="id" /> <result column="o_user_id" jdbcType="BIGINT"

随机推荐