Hello all,
I just moved my wiki database (character set latin1, collation latin1_swedish_ci, engine
InnoDB) to another database server using a MySQL dump (with the
--default-character-set=latin1 option). I also upgraded the MediaWiki version from 1.11.2
to 1.13.3 at the same time (so I've been using the MediaWiki update.php script from
the maintenance directory).
Now any page that uses the DynamicPageList extension produces variations of the following
errors:
The DPL extension (version 1.7.4) produced a SQL statement which lead to a Database
error.
The reason may be an internal error of DPL or an error which you made,
especially when using DPL options like titleregexp.
Query text is:
SELECT DISTINCT `page`.page_namespace as page_namespace,`page`.page_title as page_title,
REPLACE(REPLACE(CONCAT( IF(`page`.page_namespace=0, , CONCAT(CASE `page`.page_namespace
WHEN 1 THEN 'Talk' WHEN 2 THEN 'User' WHEN 3 THEN 'User_talk' WHEN
4 THEN 'SST_Wiki' WHEN 5 THEN 'SST_Wiki_talk' WHEN 6 THEN 'Image'
WHEN 7 THEN 'Image_talk' WHEN 8 THEN 'MediaWiki' WHEN 9 THEN
'MediaWiki_talk' WHEN 10 THEN 'Template' WHEN 11 THEN
'Template_talk' WHEN 12 THEN 'Help' WHEN 13 THEN 'Help_talk' WHEN
14 THEN 'Category' WHEN 15 THEN 'Category_talk' WHEN 100 THEN
'Portal' WHEN 101 THEN 'Portal_talk' END, ':')),
`page`.page_title), '_', ' '),'♣','⣣') COLLATE
utf8_general_ci as sortkey FROM `page` INNER JOIN `categorylinks` AS cl0 ON
`page`.page_id=cl0.cl_from AND (cl0.cl_to='Geomodeling') WHERE 1=1 AND
`page`.page_is_redirect=0 ORDER BY sortkey ASC LIMIT 0, 500
Error message is:
Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_bin,IMPLICIT) for
operation 'concat' (server)
Or:
Error in numRows(): Illegal mix of collations (utf8_general_ci,COERCIBLE) and
(latin1_bin,IMPLICIT) for operation 'concat' (hotce10)
Backtrace:
#0 /d/web01/wiki/shared_wiki/extensions/DynamicPageList/DynamicPageList2.php(2942):
Database->numRows(false)
#1 /d/web01/wiki/shared_wiki/extensions/DynamicPageList/DynamicPageList2.php(856):
ExtDynamicPageList2::dynamicPageList('?uses=Template:...', Array, Object(Parser),
Array, 'tag')
#2 [internal function]: ExtDynamicPageList2::dplTag('?uses=Template:...', Array,
Object(Parser))
#3 /d/web01/wiki/shared_wiki/includes/parser/Parser.php(3287): call_user_func_array(Array,
Array)
#4 /d/web01/wiki/shared_wiki/includes/parser/Preprocessor_DOM.php(982):
Parser->extensionSubstitution(Array, Object(PPFrame_DOM))
#5 /d/web01/wiki/shared_wiki/includes/parser/Parser.php(2678):
PPFrame_DOM->expand(Object(PPNode_DOM), 0)
#6 /d/web01/wiki/shared_wiki/includes/parser/Parser.php(966):
Parser->replaceVariables('<table border="...')
#7 /d/web01/wiki/shared_wiki/includes/parser/Parser.php(321):
Parser->internalParse('<table border="...')
#8 /d/web01/wiki/shared_wiki/includes/Article.php(3384): Parser->parse('<table
border="...', Object(Title), Object(ParserOptions), true, true, 16287)
#9 /d/web01/wiki/shared_wiki/includes/Article.php(865):
Article->outputWikiText('<table border="...')
#10 /d/web01/wiki/shared_wiki/includes/Wiki.php(437): Article->view()
#11 /d/web01/wiki/shared_wiki/includes/Wiki.php(59):
MediaWiki->performAction(Object(OutputPage), Object(Article), Object(Title),
Object(User), Object(WebRequest))
#12 /d/web01/wiki/shared_wiki/index.php(93): MediaWiki->initialize(Object(Title),
Object(Article), Object(OutputPage), Object(User), Object(WebRequest))
#13 {main}
I've tried changing the database character set to utf8 (which is the default for the
new database server), and even changing the engine to MyISAM. My $wgDBmysql5 variable is
set to false in LocalSettings.php
I've been working on this issue for a couple of days and would really appreciate any
help you could offer.
Thanks!
David Baker
Show replies by date