找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2271|回复: 0

[分享] 解决wordpress illegal mix of collations错误

[复制链接]
发表于 2016-1-14 13:37:01 | 显示全部楼层 |阅读模式 来自 中国–河南–南阳

昨天发现wordpress模板根目录下的error.log文件竟然有300M之巨。error.log这个文件是专门用来记录web服务器访问错误的,如果一旦出现异常,它就会迅速记录下来,所以文件大小会突然增长很快。
打开文件后,看到错误日志记录如下:
[21-Apr-2013 05:44:07] WordPress 数据库查询 SELECT * FROM wpcourse_prli_links WHERE slug='awesome-flickr-gallery插件推荐.html' 时发生 Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=' 错误,这是由 require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), call_user_func_array, prli_redirect, prli_link_redirect_from_slug, PrliLink->getOneFromSlug, dbrc_wpdb->query, dbrc_wpdb->dbcr_query 查询的。
[21-Apr-2013 05:44:07] WordPress 数据库查询 SELECT slug FROM wpcourse_prli_links WHERE slug like 'awesome-flickr-gallery插件推荐.html/%' 时发生 Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'like' 错误,这是由 require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), call_user_func_array, prli_redirect, dbrc_wpdb->query, dbrc_wpdb->dbcr_query 查询的

经分析,其中其实已经把问题写得比较明白了,错误名称就叫Illegal mix of collations,指的是在执行一段SQL数据库操作的时候,数据库的编码跟要查询文字的编码不匹配。其中一个是 latin1_swedish_ci,另一个是utf8_general_ci。
而产生这个错误的表就是prli_link这个表。后来一查,发现这个表是一个叫pretty link的插件引起的。后面在phpmyadmin里手工把这个表的编码从latin1_swedish_ci转成了utf8_general_ci,错误就再也没发生过。
这里要提醒大家的是,由于很多wordpress插件都是老外编写的,所以有个别的插件很可能没有考虑到编码的问题,他们很多都是用的西方文字编码,所以有可能在中文博客上发生错误。
在wordpress根目录下的error.log文件应该经常看一下,否则可能后果很严重。

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-12-24 02:28 , Processed in 0.044871 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表