Installation Extension ConfirmAccount
This is essentially bugzilla:29102. To fix, you need to look for $wgDBTableOptions in LocalSettings.php, and replace CHARSET=mysql4 with CHARSET=binary.
Thus if you had the line
$wgDBTableOptions = 'ENGINE=MyISAM, DEFAULT CHARSET=mysql4';
You'd want to replace it with
$wgDBTableOptions = 'ENGINE=MyISAM, DEFAULT CHARSET=binary';
Thanks for the hint!
I looked into my localsettings, but it already says:
# MySQL table options to use during installation or update $wgDBTableOptions = "ENGINE=MyISAM, DEFAULT CHARSET=binary";
The strange thing is that updating without using this specific extension works. But as soon as I run the update again with the extension, it fails.
I recently tried it again. First, I added
require_once( "$IP/extensions/ConfirmAccount/ConfirmAccount.php" );
to my localsettings (the charset is binary, as said). Then I updated and the same error message as above was shown.
Second, I uncommented ConfirmedAccount
# require_once( "$IP/extensions/ConfirmAccount/ConfirmAccount.php" );
and re-run the update process. The result was that everything worked fine with the update (except that I have the extension not installed):
...have ipb_id field in ipblocks table. ...have ipb_expiry field in ipblocks table. ...already have interwiki table (...) ...user_former_groups table already exists. Purging caches...done. Checking site_stats row...done.
Looks like the installer tries to use mysql4 if there are tables with the collation latin1 in the db.
Maybe try updating without the extension like you just did, verify mysql4 is no where in your LocalSettings.php, then re-add the ConfirmAccount extension, and run the command line update.php upgrade script, and see if that works.
It works fine if I update without this extension. But if I try to re-add the extension, it fails. Since I have no shell access, I can only use the install script using my browser (but I guess it does the same as update.php?).
My localsettings.php includes no mysql4 entry. It says:
<?php # This file was automatically generated by the MediaWiki 1.18.0 # installer. If you make manual changes, please keep track in case you # need to recreate them later. # # See includes/DefaultSettings.php for all configurable settings # and their default values, but don't forget to make changes in _this_ # file, not there. # # Further documentation for configuration settings may be found at: # Manual:Configuration settings # Protect against web entry if ( !defined( 'MEDIAWIKI' ) ) { exit; } ## Uncomment this to disable output compression # $wgDisableOutputCompression = true; $wgSitename = "xxx"; $wgMetaNamespace = "xxx"; ## The URL base path to the directory containing the wiki; ## defaults for all runtime URL paths are based off of this. ## For more information on customizing the URLs please see: ## Manual:Short URL $wgScriptPath = ""; $wgScriptExtension = ".php"; ## The protocol and server name to use in fully-qualified URLs $wgServer = "http://xxx.xxx"; ## The relative URL path to the skins directory $wgStylePath = "$wgScriptPath/skins"; ## The relative URL path to the logo. Make sure you change this from the default, ## or else you'll overwrite your logo when you upgrade! $wgLogo = "$wgStylePath/common/images/xxx.gif"; ## UPO means: this is also a user preference option $wgEnableEmail = true; $wgEnableUserEmail = true; # UPO $wgEmergencyContact = "xxx"; $wgPasswordSender = "xxx"; $wgEnotifUserTalk = true; # UPO $wgEnotifWatchlist = true; # UPO $wgEmailAuthentication = true; ## Database settings $wgDBtype = "mysql"; $wgDBserver = "localhost"; $wgDBname = "xxx"; $wgDBuser = "xxx"; $wgDBpassword = "xxx"; # MySQL specific settings $wgDBprefix = ""; # MySQL table options to use during installation or update $wgDBTableOptions = "ENGINE=MyISAM, DEFAULT CHARSET=binary"; # Experimental charset support for MySQL 4.1/5.0. $wgDBmysql5 = false; ## Shared memory settings $wgMainCacheType = CACHE_NONE; $wgMemCachedServers = array(); ## To enable image uploads, make sure the 'images' directory ## is writable, then set this to true: $wgEnableUploads = true; #$wgUseImageMagick = true; #$wgImageMagickConvertCommand = "/usr/bin/convert"; # InstantCommons allows wiki to use images from http://commons.wikimedia.org $wgUseInstantCommons = true; ## If you use ImageMagick (or any other shell command) on a ## Linux server, this will need to be set to the name of an ## available UTF-8 locale $wgShellLocale = "en_US.utf8"; ## If you want to use image uploads under safe mode, ## create the directories images/archive, images/thumb and ## images/temp, and make them all writable. Then uncomment ## this, if it's not already uncommented: #$wgHashedUploadDirectory = false; ## Set $wgCacheDirectory to a writable directory on the web server ## to make your wiki go slightly faster. The directory should not ## be publically accessible from the web. #$wgCacheDirectory = "$IP/cache"; # Site language code, should be one of the list in ./languages/Names.php $wgLanguageCode = "de"; $wgSecretKey = "xxx"; # Site upgrade key. Must be set to a string (default provided) to turn on the # web installer while LocalSettings.php is in place $wgUpgradeKey = "xxx"; ## Default skin: you can change the default skin. Use the internal symbolic ## names, ie 'standard', 'nostalgia', 'cologneblue', 'monobook', 'vector': $wgDefaultSkin = "vector"; ## For attaching licensing metadata to pages, and displaying an ## appropriate copyright notice / icon. GNU Free Documentation ## License and Creative Commons licenses are supported so far. $wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright $wgRightsUrl = ""; $wgRightsText = ""; $wgRightsIcon = ""; # $wgRightsCode = ""; # Not yet used # Path to the GNU diff3 utility. Used for conflict resolution. $wgDiff3 = "/usr/bin/diff3"; # Query string length limit for ResourceLoader. You should only set this if # your web server has a query string length limit (then set it to that limit), # or if you have suhosin.get.max_value_length set in php.ini (then set it to # that value) $wgResourceLoaderMaxQueryLength = 1024; # Enabled Extensions. Most extensions are enabled by including the base extension file here # but check specific extension documentation for more details # The following extensions were automatically enabled: require_once( "$IP/extensions/ConfirmEdit/ConfirmEdit.php" ); require_once( "$IP/extensions/Gadgets/Gadgets.php" ); require_once( "$IP/extensions/Nuke/Nuke.php" ); require_once( "$IP/extensions/Renameuser/Renameuser.php" ); require_once( "$IP/extensions/Vector/Vector.php" ); require_once( "$IP/extensions/WikiEditor/WikiEditor.php" ); require_once( "$IP/extensions/Description/Description.php" ); # require_once( "$IP/extensions/ConfirmAccount/ConfirmAccount.php" ); # End of automatically generated settings. # Add more configuration options below.