Page MenuHomePhabricator

Issues with Active Directory after upgrading from MediaWiki 1.19 to MediaWiki 1.31
Closed, ResolvedPublic

Description

Seeing the following database error, after upgrading from MediaWiki 1.19 / MySql 5.562 to MediaWiki 1.31 / MariaDB 10.1.30:

Error: 1146 Table 'my_wiki.ldap_domains' doesn't exist (localhost)

Do I need to create this table? How?

Full error:

[85a8e00ef64ac8bad4257a0b] /mediawiki/index.php/Special:UserLogin Wikimedia\Rdbms\DBQueryError from line 1457 of /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php: A database query error has occurred. Did you forget to run your application's database schema updater after upgrading? 
Query: SELECT domain FROM `ldap_domains` WHERE user_id = '1' LIMIT 1 
Function: LdapAuthenticationPlugin::loadDomain
Error: 1146 Table 'my_wiki.ldap_domains' doesn't exist (localhost)
Backtrace:

#0 /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php(1427): Wikimedia\Rdbms\Database->makeQueryException(string, integer, string, string)
#1 /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php(1200): Wikimedia\Rdbms\Database->reportQueryError(string, integer, string, string, boolean)
#2 /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php(1653): Wikimedia\Rdbms\Database->query(string, string)
#3 /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php(1730): Wikimedia\Rdbms\Database->select(string, array, array, string, array, array)
#4 /var/www/html/mediawiki/extensions/LdapAuthentication/LdapAuthenticationPlugin.php(2142): Wikimedia\Rdbms\Database->selectRow(string, array, array, string)
#5 /var/www/html/mediawiki/extensions/LdapAuthentication/LdapAuthenticationPlugin.php(2161): LdapAuthenticationPlugin::loadDomain(User)
#6 /var/www/html/mediawiki/extensions/LdapAuthentication/LdapAuthenticationPlugin.php(1260): LdapAuthenticationPlugin::saveDomain(User, string)
#7 /var/www/html/mediawiki/includes/auth/AuthPluginPrimaryAuthenticationProvider.php(145): LdapAuthenticationPlugin->updateUser(User)
#8 /var/www/html/mediawiki/includes/Hooks.php(177): MediaWiki\Auth\AuthPluginPrimaryAuthenticationProvider->onUserLoggedIn(User)
#9 /var/www/html/mediawiki/includes/Hooks.php(205): Hooks::callHook(string, array, array, NULL)
#10 /var/www/html/mediawiki/includes/auth/AuthManager.php(2392): Hooks::run(string, array)
#11 /var/www/html/mediawiki/includes/auth/AuthManager.php(691): MediaWiki\Auth\AuthManager->setSessionDataForUser(User, boolean)
#12 /var/www/html/mediawiki/includes/auth/AuthManager.php(383): MediaWiki\Auth\AuthManager->continueAuthentication(array)
#13 /var/www/html/mediawiki/includes/specialpage/AuthManagerSpecialPage.php(353): MediaWiki\Auth\AuthManager->beginAuthentication(array, string)
#14 /var/www/html/mediawiki/includes/specialpage/AuthManagerSpecialPage.php(482): AuthManagerSpecialPage->performAuthenticationStep(string, array)
#15 /var/www/html/mediawiki/includes/htmlform/HTMLForm.php(660): AuthManagerSpecialPage->handleFormSubmit(array, VFormHTMLForm)
#16 /var/www/html/mediawiki/includes/specialpage/AuthManagerSpecialPage.php(416): HTMLForm->trySubmit()
#17 /var/www/html/mediawiki/includes/specialpage/LoginSignupSpecialPage.php(316): AuthManagerSpecialPage->trySubmit()
#18 /var/www/html/mediawiki/includes/specialpage/SpecialPage.php(522): LoginSignupSpecialPage->execute(NULL)
#19 /var/www/html/mediawiki/includes/specialpage/SpecialPageFactory.php(568): SpecialPage->run(NULL)
#20 /var/www/html/mediawiki/includes/MediaWiki.php(288): SpecialPageFactory::executePath(Title, RequestContext)
#21 /var/www/html/mediawiki/includes/MediaWiki.php(861): MediaWiki->performRequest()
#22 /var/www/html/mediawiki/includes/MediaWiki.php(524): MediaWiki->main()
#23 /var/www/html/mediawiki/index.php(42): MediaWiki->run()
#24 {main}

When I have this uncommented in the LocalSettings.php file on my Ubuntu 18.04 LTS host

# Enable LDAP Authentication
require_once( "$IP/extensions/LdapAuthentication/LdapAuthentication.php" );
$wgAuth = new LdapAuthenticationPlugin();
$wgLDAPDomainNames = array( "acc.local" );
$wgLDAPServerNames = array( "acc.local" => "RWDC-GRAHAM-VM1.acc.local" );
$wgLDAPSearchStrings = array( "acc.local" => "ACC\USER-NAME" );
$wgLDAPEncryptionType = array( "acc.local" => "clear" );
$wgLDAPUseLocal = true;
$wgMinimalPasswordLength = 1;
$wgLDAPBaseDNs = array( "acc.local" => "dc=acc,dc=local" );
$wgLDAPSearchAttributes = array( "acc.local" => "sAMAccountName" );
$wgLDAPRetrievePrefs = array( "acc.local" => "true" );
$wgLDAPDebug = 3; //for debugging LDAP
$wgShowExceptionDetails = true; //for debugging MediaWiki
$wgLDAPProxyAgent = array('ACC' => 'cn=infowikibind,dc=acc,dc=local',);
$wgLDAPProxyAgentPassword = array('ACC' => 'Hj89#2sA');
$wgLDAPPort = array('ACC' => 636,)

Event Timeline

You should just need to run update.php and it should create it as part of the database updater

https://www.mediawiki.org/wiki/Manual:Update.php

Reedy renamed this task from Issues with Active Directory after upgrading from MediaWiki 1.19 / MySql 5.562 to MediaWiki 1.31 / MariaDB 10.1.30 to Issues with Active Directory after upgrading from MediaWiki 1.19 to MediaWiki 1.31.Jun 26 2019, 12:53 PM

I did, multiple times, getting several warning messages:

support@wiki3:/var/www/html/mediawiki/maintenance$ sudo php update.php
PHP Warning:  "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /var/www/html/mediawiki/includes/json/FormatJson.php on line 297

Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /var/www/html/mediawiki/includes/json/FormatJson.php on line 297
PHP Warning:  "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /var/www/html/mediawiki/languages/LanguageConverter.php on line 773

Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /var/www/html/mediawiki/languages/LanguageConverter.php on line 773
PHP Warning:  ini_set(): Headers already sent. You cannot change the session module's ini settings at this time in /var/www/html/mediawiki/includes/session/PHPSessionHandler.php on line 126

Warning: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time in /var/www/html/mediawiki/includes/session/PHPSessionHandler.php on line 126
PHP Warning:  ini_set(): Headers already sent. You cannot change the session module's ini settings at this time in /var/www/html/mediawiki/includes/session/PHPSessionHandler.php on line 127

Warning: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time in /var/www/html/mediawiki/includes/session/PHPSessionHandler.php on line 127
PHP Warning:  session_cache_limiter(): Cannot change cache limiter when headers already sent in /var/www/html/mediawiki/includes/session/PHPSessionHandler.php on line 133

Warning: session_cache_limiter(): Cannot change cache limiter when headers already sent in /var/www/html/mediawiki/includes/session/PHPSessionHandler.php on line 133
PHP Warning:  session_set_save_handler(): Cannot change save handler when headers already sent in /var/www/html/mediawiki/includes/session/PHPSessionHandler.php on line 140

Warning: session_set_save_handler(): Cannot change save handler when headers already sent in /var/www/html/mediawiki/includes/session/PHPSessionHandler.php on line 140
MediaWiki 1.31.0 Updater

Your composer.lock file is up to date with current dependencies!
Going to run database updates for my_wiki
Depending on the size of your database this may take a while!
Abort with control-c in the next five seconds (skip this countdown with --quick) ... 0
Turning off Content Handler DB fields for this part of upgrade.
...have ipb_id field in ipblocks table.
...have ipb_expiry field in ipblocks table.
...already have interwiki table
...indexes seem up to 20031107 standards.
...have rc_type field in recentchanges table.
...index new_name_timestamp already set on recentchanges table.
...have user_real_name field in user table.
...querycache table already exists.
...objectcache table already exists.
...categorylinks table already exists.
...have pagelinks; skipping old links table updates
...il_from OK
...have rc_ip field in recentchanges table.
...index PRIMARY already set on image table.
...have rc_id field in recentchanges table.
...have rc_patrolled field in recentchanges table.
...logging table already exists.
...have user_token field in user table.
...have wl_notificationtimestamp field in watchlist table.
...watchlist talk page rows already present.
...user table does not contain user_emailauthenticationtimestamp field.
...page table already exists.
...have log_params field in logging table.
...logging table has correct log_title encoding.
...have ar_rev_id field in archive table.
...have page_len field in page table.
...revision table does not contain inverse_timestamp field.
...have rev_text_id field in revision table.
...have rev_deleted field in revision table.
...have img_width field in image table.
...have img_metadata field in image table.
...have user_email_token field in user table.
...have ar_text_id field in archive table.
...page_namespace is already a full int (int(11)).
...ar_namespace is already a full int (int(11)).
...rc_namespace is already a full int (int(11)).
...wl_namespace is already a full int (int(11)).
...qc_namespace is already a full int (int(11)).
...log_namespace is already a full int (int(11)).
...have img_media_type field in image table.
...already have pagelinks table.
...image table does not contain img_type field.
...already have unique user_name index.
...user_groups table exists and is in current format.
...have ss_total_pages field in site_stats table.
...user_newtalk table already exists.
...transcache table already exists.
...have iw_trans field in interwiki table.
...wl_notificationtimestamp is already nullable.
...index times already set on logging table.
...have ipb_range_start field in ipblocks table.
...no page_random rows needed to be set
...have user_registration field in user table.
...templatelinks table already exists
...externallinks table already exists.
...job table already exists.
...have ss_images field in site_stats table.
...langlinks table already exists.
...querycache_info table already exists.
...filearchive table already exists.
...have ipb_anon_only field in ipblocks table.
...index rc_ns_usertext already set on recentchanges table.
...index rc_user_text already set on recentchanges table.
...have user_newpass_time field in user table.
...redirect table already exists.
...querycachetwo table already exists.
...have ipb_enable_autoblock field in ipblocks table.
...index pl_namespace on table pagelinks includes field pl_from.
...index tl_namespace on table templatelinks includes field tl_from.
...index il_to on table imagelinks includes field il_from.
...have rc_old_len field in recentchanges table.
...have user_editcount field in user table.
...page_restrictions table already exists.
...have log_id field in logging table.
...have rev_parent_id field in revision table.
...have pr_id field in page_restrictions table.
...have rev_len field in revision table.
...have rc_deleted field in recentchanges table.
...have log_deleted field in logging table.
...have ar_deleted field in archive table.
...have ipb_deleted field in ipblocks table.
...have fa_deleted field in filearchive table.
...have ar_len field in archive table.
...have ipb_block_email field in ipblocks table.
...index cl_sortkey on table categorylinks includes field cl_from.
...have oi_metadata field in oldimage table.
...index usertext_timestamp already set on archive table.
...index img_usertext_timestamp already set on image table.
...index oi_usertext_timestamp already set on oldimage table.
...have ar_page_id field in archive table.
...have img_sha1 field in image table.
...protected_titles table already exists.
...have ipb_by_text field in ipblocks table.
...page_props table already exists.
...updatelog table already exists.
...category table already exists.
...category table already populated.
...have ar_parent_id field in archive table.
...have user_last_timestamp field in user_newtalk table.
...protected_titles table has correct pt_title encoding.
...have ss_active_users field in site_stats table.
...ss_active_users user count set...
...have ipb_allow_usertalk field in ipblocks table.
...change_tag table already exists.
...tag_summary table already exists.
...valid_tag table already exists.
...user_properties table already exists.
...log_search table already exists.
...have log_user_text field in logging table.
...l10n_cache table already exists.
Adding index change_tag_rc_tag to table change_tag ...[3862a024833cda213cc1b56d] [no req]   Wikimedia\Rdbms\DBQueryError from line 1457 of /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php: A database query error has occurred. Did you forget to run your application's database schema updater after upgrading?
Query: DROP INDEX ct_rc_id ON `change_tag`

Function: Wikimedia\Rdbms\Database::sourceFile( /var/www/html/mediawiki/maintenance/archives/patch-change_tag-indexes.sql )
Error: 1091 Can't DROP 'ct_rc_id'; check that column/key exists (localhost)

Backtrace:
#0 /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php(1427): Wikimedia\Rdbms\Database->makeQueryException(string, integer, string, string)
#1 /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php(1200): Wikimedia\Rdbms\Database->reportQueryError(string, integer, string, string, boolean)
#2 /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php(4194): Wikimedia\Rdbms\Database->query(string, string)
#3 /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php(4129): Wikimedia\Rdbms\Database->sourceStream(resource (closed), NULL, NULL, string, NULL)
#4 /var/www/html/mediawiki/includes/installer/DatabaseUpdater.php(683): Wikimedia\Rdbms\Database->sourceFile(string)
#5 /var/www/html/mediawiki/includes/installer/DatabaseUpdater.php(776): DatabaseUpdater->applyPatch(string, boolean, string)
#6 /var/www/html/mediawiki/includes/installer/DatabaseUpdater.php(482): DatabaseUpdater->addIndex(string, string, string)
#7 /var/www/html/mediawiki/includes/installer/DatabaseUpdater.php(446): DatabaseUpdater->runUpdates(array, boolean)
#8 /var/www/html/mediawiki/maintenance/update.php(200): DatabaseUpdater->doUpdates(array)
#9 /var/www/html/mediawiki/maintenance/doMaintenance.php(94): UpdateMediaWiki->execute()
#10 /var/www/html/mediawiki/maintenance/update.php(245): require_once(string)
#11 {main}

What version of PHP are you using?

The problem here would look to be it doesn't get the database updates finished, so it's not even trying to update that file...

There's a couple of other issues too

I have several installed, using php7.2

support@wiki3:/var/www/html/mediawiki/maintenance$ dpkg -l |grep php
ii  libapache2-mod-php5.6                 5.6.40-8+ubuntu18.04.1+deb.sury.org+1                    amd64        server-side, HTML-embedded scripting language (Apache 2 module)
ii  libapache2-mod-php7.2                 7.2.19-1+ubuntu18.04.1+deb.sury.org+1                    amd64        server-side, HTML-embedded scripting language (Apache 2 module)
ii  libapache2-mod-php7.3                 7.3.6-1+ubuntu18.04.1+deb.sury.org+1                     amd64        server-side, HTML-embedded scripting language (Apache 2 module)
rc  php-apcu                              5.1.17+4.0.11-1+ubuntu18.04.1+deb.sury.org+1             amd64        APC User Cache for PHP
ii  php-common                            2:69+ubuntu18.04.1+deb.sury.org+2+php7.3                 all          Common files for PHP packages
ii  php-pear                              1:1.10.8+submodules+notgz-1+ubuntu18.04.1+deb.sury.org+1 all          PEAR Base System
ii  php-xml                               2:7.3+69+ubuntu18.04.1+deb.sury.org+2+php7.3             all          DOM, SimpleXML, WDDX, XML, and XSL module for PHP [default]
ii  php5.6                                5.6.40-8+ubuntu18.04.1+deb.sury.org+1                    all          server-side, HTML-embedded scripting language (metapackage)
ii  php5.6-cli                            5.6.40-8+ubuntu18.04.1+deb.sury.org+1                    amd64        command-line interpreter for the PHP scripting language
ii  php5.6-common                         5.6.40-8+ubuntu18.04.1+deb.sury.org+1                    amd64        documentation, examples and common module for PHP
ii  php5.6-json                           5.6.40-8+ubuntu18.04.1+deb.sury.org+1                    amd64        JSON module for PHP
ii  php5.6-opcache                        5.6.40-8+ubuntu18.04.1+deb.sury.org+1                    amd64        Zend OpCache module for PHP
ii  php5.6-readline                       5.6.40-8+ubuntu18.04.1+deb.sury.org+1                    amd64        readline module for PHP
ii  php7.2                                7.2.19-1+ubuntu18.04.1+deb.sury.org+1                    all          server-side, HTML-embedded scripting language (metapackage)
ii  php7.2-cli                            7.2.19-1+ubuntu18.04.1+deb.sury.org+1                    amd64        command-line interpreter for the PHP scripting language
ii  php7.2-common                         7.2.19-1+ubuntu18.04.1+deb.sury.org+1                    amd64        documentation, examples and common module for PHP
ii  php7.2-curl                           7.2.19-1+ubuntu18.04.1+deb.sury.org+1                    amd64        CURL module for PHP
ii  php7.2-gd                             7.2.19-1+ubuntu18.04.1+deb.sury.org+1                    amd64        GD module for PHP
ii  php7.2-intl                           7.2.19-1+ubuntu18.04.1+deb.sury.org+1                    amd64        Internationalisation module for PHP
ii  php7.2-json                           7.2.19-1+ubuntu18.04.1+deb.sury.org+1                    amd64        JSON module for PHP
ii  php7.2-ldap                           7.2.19-1+ubuntu18.04.1+deb.sury.org+1                    amd64        LDAP module for PHP
ii  php7.2-mbstring                       7.2.19-1+ubuntu18.04.1+deb.sury.org+1                    amd64        MBSTRING module for PHP
ii  php7.2-mysql                          7.2.19-1+ubuntu18.04.1+deb.sury.org+1                    amd64        MySQL module for PHP
ii  php7.2-opcache                        7.2.19-1+ubuntu18.04.1+deb.sury.org+1                    amd64        Zend OpCache module for PHP
ii  php7.2-readline                       7.2.19-1+ubuntu18.04.1+deb.sury.org+1                    amd64        readline module for PHP
ii  php7.2-soap                           7.2.19-1+ubuntu18.04.1+deb.sury.org+1                    amd64        SOAP module for PHP
ii  php7.2-xml                            7.2.19-1+ubuntu18.04.1+deb.sury.org+1                    amd64        DOM, SimpleXML, WDDX, XML, and XSL module for PHP
ii  php7.2-xmlrpc                         7.2.19-1+ubuntu18.04.1+deb.sury.org+1                    amd64        XMLRPC-EPI module for PHP
ii  php7.2-zip                            7.2.19-1+ubuntu18.04.1+deb.sury.org+1                    amd64        Zip module for PHP
ii  php7.3                                7.3.6-1+ubuntu18.04.1+deb.sury.org+1                     all          server-side, HTML-embedded scripting language (metapackage)
ii  php7.3-cli                            7.3.6-1+ubuntu18.04.1+deb.sury.org+1                     amd64        command-line interpreter for the PHP scripting language
ii  php7.3-common                         7.3.6-1+ubuntu18.04.1+deb.sury.org+1                     amd64        documentation, examples and common module for PHP
ii  php7.3-dev                            7.3.6-1+ubuntu18.04.1+deb.sury.org+1                     amd64        Files for PHP7.3 module development
ii  php7.3-json                           7.3.6-1+ubuntu18.04.1+deb.sury.org+1                     amd64        JSON module for PHP
ii  php7.3-mbstring                       7.3.6-1+ubuntu18.04.1+deb.sury.org+1                     amd64        MBSTRING module for PHP
ii  php7.3-mysql                          7.3.6-1+ubuntu18.04.1+deb.sury.org+1                     amd64        MySQL module for PHP
ii  php7.3-opcache                        7.3.6-1+ubuntu18.04.1+deb.sury.org+1                     amd64        Zend OpCache module for PHP
ii  php7.3-readline                       7.3.6-1+ubuntu18.04.1+deb.sury.org+1                     amd64        readline module for PHP
ii  php7.3-xml                            7.3.6-1+ubuntu18.04.1+deb.sury.org+1                     amd64        DOM, SimpleXML, WDDX, XML, and XSL module for PHP
ii  pkg-php-tools                         1.35ubuntu1                                              all          various packaging tools and scripts for PHP packages
support@wiki3:/var/www/html/mediawiki/maintenance$

Ok, so you really should upgrade to the latest point release of 1.31, as update.php says, you're using 1.31.0

PHP Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /var/www/html/mediawiki/includes/json/FormatJson.php on line 297
PHP Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /var/www/html/mediawiki/languages/LanguageConverter.php on line 773

These errors, at least is fixed in https://github.com/wikimedia/mediawiki/commit/24ffbd9bd182944daa8b12244b729562cd5f50db which is fixed in 1.31.2

Alright, can you please point me to the software and the upgrade process?

Wait, I installed this already, and I couldn't even get to the login prompt page, which I can with this version

I had both installed on my system for a bit, as I was trying to work through issues before I knew of the update.php script

Wait I downloaded 1.32 - Alright I'll try this thanks

Even if you use 1.32, make sure you're on 1.32.2 for security and maintenance releases

Still getting update.php errors when running it

support@wiki3:/var/www/html/mediawiki-1.31.2/maintenance$ sudo php update.php
MediaWiki 1.31.2 Updater

Your composer.lock file is up to date with current dependencies!
Going to run database updates for my_wiki
Depending on the size of your database this may take a while!
Abort with control-c in the next five seconds (skip this countdown with --quick) ... 0
Turning off Content Handler DB fields for this part of upgrade.
...have ipb_id field in ipblocks table.
...have ipb_expiry field in ipblocks table.
...already have interwiki table
...indexes seem up to 20031107 standards.
...have rc_type field in recentchanges table.
...index new_name_timestamp already set on recentchanges table.
...have user_real_name field in user table.
...querycache table already exists.
...objectcache table already exists.
...categorylinks table already exists.
...have pagelinks; skipping old links table updates
...il_from OK
...have rc_ip field in recentchanges table.
...index PRIMARY already set on image table.
...have rc_id field in recentchanges table.
...have rc_patrolled field in recentchanges table.
...logging table already exists.
...have user_token field in user table.
...have wl_notificationtimestamp field in watchlist table.
...watchlist talk page rows already present.
...user table does not contain user_emailauthenticationtimestamp field.
...page table already exists.
...have log_params field in logging table.
...logging table has correct log_title encoding.
...have ar_rev_id field in archive table.
...have page_len field in page table.
...revision table does not contain inverse_timestamp field.
...have rev_text_id field in revision table.
...have rev_deleted field in revision table.
...have img_width field in image table.
...have img_metadata field in image table.
...have user_email_token field in user table.
...have ar_text_id field in archive table.
...page_namespace is already a full int (int(11)).
...ar_namespace is already a full int (int(11)).
...rc_namespace is already a full int (int(11)).
...wl_namespace is already a full int (int(11)).
...qc_namespace is already a full int (int(11)).
...log_namespace is already a full int (int(11)).
...have img_media_type field in image table.
...already have pagelinks table.
...image table does not contain img_type field.
...already have unique user_name index.
...user_groups table exists and is in current format.
...have ss_total_pages field in site_stats table.
...user_newtalk table already exists.
...transcache table already exists.
...have iw_trans field in interwiki table.
...wl_notificationtimestamp is already nullable.
...index times already set on logging table.
...have ipb_range_start field in ipblocks table.
...no page_random rows needed to be set
...have user_registration field in user table.
...templatelinks table already exists
...externallinks table already exists.
...job table already exists.
...have ss_images field in site_stats table.
...langlinks table already exists.
...querycache_info table already exists.
...filearchive table already exists.
...have ipb_anon_only field in ipblocks table.
...index rc_ns_usertext already set on recentchanges table.
...index rc_user_text already set on recentchanges table.
...have user_newpass_time field in user table.
...redirect table already exists.
...querycachetwo table already exists.
...have ipb_enable_autoblock field in ipblocks table.
...index pl_namespace on table pagelinks includes field pl_from.
...index tl_namespace on table templatelinks includes field tl_from.
...index il_to on table imagelinks includes field il_from.
...have rc_old_len field in recentchanges table.
...have user_editcount field in user table.
...page_restrictions table already exists.
...have log_id field in logging table.
...have rev_parent_id field in revision table.
...have pr_id field in page_restrictions table.
...have rev_len field in revision table.
...have rc_deleted field in recentchanges table.
...have log_deleted field in logging table.
...have ar_deleted field in archive table.
...have ipb_deleted field in ipblocks table.
...have fa_deleted field in filearchive table.
...have ar_len field in archive table.
...have ipb_block_email field in ipblocks table.
...index cl_sortkey on table categorylinks includes field cl_from.
...have oi_metadata field in oldimage table.
...index usertext_timestamp already set on archive table.
...index img_usertext_timestamp already set on image table.
...index oi_usertext_timestamp already set on oldimage table.
...have ar_page_id field in archive table.
...have img_sha1 field in image table.
...protected_titles table already exists.
...have ipb_by_text field in ipblocks table.
...page_props table already exists.
...updatelog table already exists.
...category table already exists.
...category table already populated.
...have ar_parent_id field in archive table.
...have user_last_timestamp field in user_newtalk table.
...protected_titles table has correct pt_title encoding.
...have ss_active_users field in site_stats table.
...ss_active_users user count set...
...have ipb_allow_usertalk field in ipblocks table.
...change_tag table already exists.
...tag_summary table already exists.
...valid_tag table already exists.
...user_properties table already exists.
...log_search table already exists.
...have log_user_text field in logging table.
...l10n_cache table already exists.
Adding index change_tag_rc_tag to table change_tag ...[ec27890c53a3edaca77ac11d] [no req]   Wikimedia\Rdbms\DBQueryError from line 1457 of /var/www/html/mediawiki-1.31.2/includes/libs/rdbms/database/Database.php: A database query error has occurred. Did you forget to run your application's database schema updater after upgrading?
Query: DROP INDEX ct_rc_id ON `change_tag`

Function: Wikimedia\Rdbms\Database::sourceFile( /var/www/html/mediawiki-1.31.2/maintenance/archives/patch-change_tag-indexes.sql )
Error: 1091 Can't DROP 'ct_rc_id'; check that column/key exists (localhost)

Backtrace:
#0 /var/www/html/mediawiki-1.31.2/includes/libs/rdbms/database/Database.php(1427): Wikimedia\Rdbms\Database->makeQueryException(string, integer, string, string)
#1 /var/www/html/mediawiki-1.31.2/includes/libs/rdbms/database/Database.php(1200): Wikimedia\Rdbms\Database->reportQueryError(string, integer, string, string, boolean)
#2 /var/www/html/mediawiki-1.31.2/includes/libs/rdbms/database/Database.php(4194): Wikimedia\Rdbms\Database->query(string, string)
#3 /var/www/html/mediawiki-1.31.2/includes/libs/rdbms/database/Database.php(4129): Wikimedia\Rdbms\Database->sourceStream(resource (closed), NULL, NULL, string, NULL)
#4 /var/www/html/mediawiki-1.31.2/includes/installer/DatabaseUpdater.php(683): Wikimedia\Rdbms\Database->sourceFile(string)
#5 /var/www/html/mediawiki-1.31.2/includes/installer/DatabaseUpdater.php(776): DatabaseUpdater->applyPatch(string, boolean, string)
#6 /var/www/html/mediawiki-1.31.2/includes/installer/DatabaseUpdater.php(482): DatabaseUpdater->addIndex(string, string, string)
#7 /var/www/html/mediawiki-1.31.2/includes/installer/DatabaseUpdater.php(446): DatabaseUpdater->runUpdates(array, boolean)
#8 /var/www/html/mediawiki-1.31.2/maintenance/update.php(203): DatabaseUpdater->doUpdates(array)
#9 /var/www/html/mediawiki-1.31.2/maintenance/doMaintenance.php(94): UpdateMediaWiki->execute()
#10 /var/www/html/mediawiki-1.31.2/maintenance/update.php(248): require_once(string)
#11 {main}
support@wiki3:/var/www/html/mediawiki-1.31.2/maintenance$

See https://www.mediawiki.org/wiki/Topic:Ukol0fkinjvqe5a7 for a potential workaround.

In general this feels like a discussion topic for the MediaWiki support desk, and not (yet) like a bug report for Wikimedia Phabricator.

Seeing this error:

IP: 172.16.1.193
Start request GET /mediawiki-1.31.2/
 HTTP HEADERS:
 ACCEPT: text/html, application/xhtml+xml, image/jxr, */*
 ACCEPT-LANGUAGE: en-US
 USER-AGENT: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
 ACCEPT-ENCODING: gzip, deflate
 HOST: 10.210.200.3
 CONNECTION: Keep-Alive
[caches] cluster: EmptyBagOStuff, WAN: mediawiki-main-default, stash: db-replicated, message: SqlBagOStuff, session: SqlBagOStuff
[caches] LocalisationCache: using store LCStoreDB
[authentication] Overriding AuthManager primary authn because $wgAuth is LdapAuthenticationPlugin
[CryptRand] 0 bytes of randomness leftover in the buffer.
[DBConnection] Wikimedia\Rdbms\LoadBalancer::openConnection: calling initLB() before first connection.
[DBReplication] Cannot use ChronologyProtector with EmptyBagOStuff.
[DBReplication] Wikimedia\Rdbms\LBFactory::getChronologyProtector: using request info {
 "IPAddress": "172.16.1.193",
 "UserAgent": "Mozilla\/5.0 (Windows NT 10.0; WOW64; Trident\/7.0; rv:11.0) like Gecko",
 "ChronologyProtection": false,
 "ChronologyPositionIndex": 0
 }
[DBConnection] Wikimedia\Rdbms\LoadBalancer::openConnection: connected to database 0 at 'localhost'.
[DBQuery] my_wiki SHOW /* Wikimedia\Rdbms\DatabaseMysqlBase::serverIsReadOnly */ GLOBAL VARIABLES LIKE 'read_only'
[SQLBagOStuff] Connection 608 will be used for SqlBagOStuff
[DBQuery] my_wiki SELECT /* SqlBagOStuff::getMulti */ keyname,value,exptime FROM `objectcache` WHERE keyname = 'my_wiki:MWSession:ljh7hg15j96okv6i94hikbul82rnu4tg'
[session] SessionBackend "ljh7hg15j96okv6i94hikbul82rnu4tg" is unsaved, marking dirty in constructor
[session] SessionBackend "ljh7hg15j96okv6i94hikbul82rnu4tg" save: dataDirty=1 metaDirty=1 forcePersist=0
[cookie] already deleted setcookie: "my_wiki_session", "", "1530020567", "/", "", "", "1"
[cookie] already deleted setcookie: "my_wikiUserID", "", "1530020567", "/", "", "", "1"
[cookie] already deleted setcookie: "my_wikiToken", "", "1530020567", "/", "", "", "1"
[cookie] already deleted setcookie: "forceHTTPS", "", "1530020567", "/", "", "", "1"
[DBConnection] Wikimedia\Rdbms\LoadBalancer::openConnection: connected to database 0 at 'localhost'.
[DBQuery] my_wiki BEGIN /* Wikimedia\Rdbms\Database::query (LCStoreDB::get) */
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'deps' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'list' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'preload' LIMIT 1
LocalisationCache::isExpired(en): cache for en expired due to GlobalDependency
LocalisationCache::recache: got localisation for en from source
[DBQuery] my_wiki DELETE /* LCStoreDB::finishWrite */ FROM `l10n_cache` WHERE lc_lang = 'en'
[DBQuery] my_wiki INSERT /* LCStoreDB::finishWrite */ INTO `l10n_cache` (lc_lang,lc_key,lc_value) VALUES ('en','fallback','b:0;'),('en','namespaceNames','a:17:{i:-2;s:5:\"Media\";i:-1;s:7:\"Special\";i:0;s:0:\"\";i:1;s:4:\"Talk\";i:2;s:4:\"User\";i:3;s:9:\"User_talk\";i:5;s:7:\"$1_talk\";i:6;s:4:\"File\";i:7;s:9:\"File_talk\";i:8;s:9:\"MediaWiki\";i:9;s:14:\"MediaWiki_talk\";i:10;s:8:\"Template\";i:11;s:13:\"Template_talk\";i:12;s:4:\"Help\";i:13;s:9:\"Help_talk\";i:14;s:8:\"Category\";i:15;s:13:\"Category_talk\";}'),('en','bookstoreList','a:3:{s:6:\"AddALL\";s:56:\"http://www.addall.com/New/Partner.cgi?query=$1&type=ISBN\";s:14:\"Barnes & Noble\";s:67:\"http://search.barnesandnoble.com/bookSearch/isbnInquiry.asp?isbn=$1\";s:10:\"Amazon.com\";s:47:\"https://www.amazon.com/gp/search/?field-isbn=$1\";}'),('en','magicWords','a:191:{s:12:\"categorytree\";a:2:{i:0;i:0;i:1;s:12:\"categorytree\";}s:4:\"expr\";a:2:{i:0;i:0;i:1;s:4:\"expr\";}s:2:\"if\";a:2:{i:0;i:0;i:1;s:2:\"if\";}s:4:\"ifeq\";a:2:{i:0;i:0;i:1;s:4:\"ifeq\";}s:6:\"ifexpr\";a:2:{i:0;i:0;i:1;s:6:\"ifexpr\";}s:7:\"iferror\";a:2:{i:0;i:0;i:1;s:7:\"iferror\";}s:6:\"switch\";a:2:{i:0;i:0;i:1;s:6:\"switch\";}s:7:\"default\";a:2:{i:0;i:0;i:1;s:8:\"#default\";}s:7:\"ifexist\";a:2:{i:0;i:0;i:1;s:7:\"ifexist\";}s:4:\"time\";a:2:{i:0;i:0;i:1;s:4:\"time\";}s:5:\"timel\";a:2:{i:0;i:0;i:1;s:5:\"timel\";}s:7:\"rel2abs\";a:2:{i:0;i:0;i:1;s:7:\"rel2abs\";}s:10:\"titleparts\";a:2:{i:0;i:0;i:1;s:10:\"titleparts\";}s:3:\"len\";a:2:{i:0;i:0;i:1;s:3:\"len\";}s:3:\"pos\";a:2:{i:0;i:0;i:1;s:3:\"pos\";}s:4:\"rpos\";a:2:{i:0;i:0;i:1;s:4:\"rpos\";}s:3:\"sub\";a:2:{i:0;i:0;i:1;s:3:\"sub\";}s:5:\"count\";a:2:{i:0;i:0;i:1;s:5:\"count\";}s:7:\"replace\";a:2:{i:0;i:0;i:1;s:7:\"replace\";}s:7:\"explode\";a:2:{i:0;i:0;i:1;s:7:\"explode\";}s:9:\"urldecode\";a:2:{i:0;i:0;i:1;s:9:\"urldecode\";}s:8:\"redirect\";a:2:{i:0;i:0;i:1;s:9:\"#REDIRECT\";}s:5:\"notoc\";a:2:{i:0;i:0;i:1;s:9:\"__NOTOC__\";}s:9:\"nogallery\";a:2:{i:0;i:0;i:1;s:13:\"__NOGALLERY__\";}s:8:\"forcetoc\";a:2:{i:0;i:0;i:1;s:12:\"__FORCETOC__\";}s:3:\"toc\";a:2:{i:0;i:0;i:1;s:7:\"__TOC__\";}s:13:\"noeditsection\";a:2:{i:0;i:0;i:1;s:17:\"__NOEDITSECTION__\";}s:1:\"!\";a:2:{i:0;i:1;i:1;s:1:\"!\";}s:12:\"currentmonth\";a:3:{i:0;i:1;i:1;s:12:\"CURRENTMONTH\";i:2;s:13:\"CURRENTMONTH2\";}s:13:\"currentmonth1\";a:2:{i:0;i:1;i:1;s:13:\"CURRENTMONTH1\";}s:16:\"currentmonthname\";a:2:{i:0;i:1;i:1;s:16:\"CURRENTMONTHNAME\";}s:19:\"currentmonthnamegen\";a:2:{i:0;i:1;i:1;s:19:\"CURRENTMONTHNAMEGEN\";}s:18:\"currentmonthabbrev\";a:2:{i:0;i:1;i:1;s:18:\"CURRENTMONTHABBREV\";}s:10:\"currentday\";a:2:{i:0;i:1;i:1;s:10:\"CURRENTDAY\";}s:11:\"currentday2\";a:2:{i:0;i:1;i:1;s:11:\"CURRENTDAY2\";}s:14:\"currentdayname\";a:2:{i:0;i:1;i:1;s:14:\"CURRENTDAYNAME\";}s:11:\"currentyear\";a:2:{i:0;i:1;i:1;s:11:\"CURRENTYEAR\";}s:11:\"currenttime\";a:2:{i:0;i:1;i:1;s:11:\"CURRENTTIME\";}s:11:\"currenthour\";a:2:{i:0;i:1;i:1;s:11:\"CURRENTHOUR\";}s:10:\"localmonth\";a:3:{i:0;i:1;i:1;s:10:\"LOCALMONTH\";i:2;s:11:\"LOCALMONTH2\";}s:11:\"localmonth1\";a:2:{i:0;i:1;i:1;s:11:\"LOCALMONTH1\";}s:14:\"localmonthname\";a:2:{i:0;i:1;i:1;s:14:\"LOCALMONTHNAME\";}s:17:\"localmonthnamegen\";a:2:{i:0;i:1;i:1;s:17:\"LOCALMONTHNAMEGEN\";}s:16:\"localmonthabbrev\";a:2:{i:0;i:1;i:1;s:16:\"LOCALMONTHABBREV\";}s:8:\"localday\";a:2:{i:0;i:1;i:1;s:8:\"LOCALDAY\";}s:9:\"localday2\";a:2:{i:0;i:1;i:1;s:9:\"LOCALDAY2\";}s:12:\"localdayname\";a:2:{i:0;i:1;i:1;s:12:\"LOCALDAYNAME\";}s:9:\"localyear\";a:2:{i:0;i:1;i:1;s:9:\"LOCALYEAR\";}s:9:\"localtime\";a:2:{i:0;i:1;i:1;s:9:\"LOCALTIME\";}s:9:\"localhour\";a:2:{i:0;i:1;i:1;s:9:\"LOCALHOUR\";}s:13:\"numberofpages\";a:2:{i:0;i:1;i:1;s:13:\"NUMBEROFPAGES\";}s:16:\"numberofarticles\";a:2:{i:0;i:1;i:1;s:16:\"NUMBEROFARTICLES\";}s:13:\"numberoffiles\";a:2:{i:0;i:1;i:1;s:13:\"NUMBEROFFILES\";}s:13:\"numberofusers\";a:2:{i:0;i:1;i:1;s:13:\"NUMBEROFUSERS\";}s:19:\"numberofactiveusers\";a:2:{i:0;i:1;i:1;s:19:\"NUMBEROFACTIVEUSERS\";}s:13:\"numberofedits\";a:2:{i:0;i:1;i:1;s:13:\"NUMBEROFEDITS\";}s:8:\"pagename\";a:2:{i:0;i:1;i:1;s:8:\"PAGENAME\";}s:9:\"pagenamee\";a:2:{i:0;i:1;i:1;s:9:\"PAGENAMEE\";}s:9:\"namespace\";a:2:{i:0;i:1;i:1;s:9:\"NAMESPACE\";}s:10:\"namespacee\";a:2:{i:0;i:1;i:1;s:10:\"NAMESPACEE\";}s:15:\"namespacenumber\";a:2:{i:0;i:1;i:1;s:15:\"NAMESPACENUMBER\";}s:9:\"talkspace\";a:2:{i:0;i:1;i:1;s:9:\"TALKSPACE\";}s:10:\"talkspacee\";a:2:{i:0;i:1;i:1;s:10:\"TALKSPACEE\";}s:12:\"subjectspace\";a:3:{i:0;i:1;i:1;s:12:\"SUBJECTSPACE\";i:2;s:12:\"ARTICLESPACE\";}s:13:\"subjectspacee\";a:3:{i:0;i:1;i:1;s:13:\"SUBJECTSPACEE\";i:2;s:13:\"ARTICLESPACEE\";}s:12:\"fullpagename\";a:2:{i:0;i:1;i:1;s:12:\"FULLPAGENAME\";}s:13:\"fullpagenamee\";a:2:{i:0;i:1;i:1;s:13:\"FULLPAGENAMEE\";}s:11:\"subpagename\";a:2:{i:0;i:1;i:1;s:11:\"SUBPAGENAME\";}s:12:\"subpagenamee\";a:2:{i:0;i:1;i:1;s:12:\"SUBPAGENAMEE\";}s:12:\"rootpagename\";a:2:{i:0;i:1;i:1;s:12:\"ROOTPAGENAME\";}s:13:\"rootpagenamee\";a:2:{i:0;i:1;i:1;s:13:\"ROOTPAGENAMEE\";}s:12:\"basepagename\";a:2:{i:0;i:1;i:1;s:12:\"BASEPAGENAME\";}s:13:\"basepagenamee\";a:2:{i:0;i:1;i:1;s:13:\"BASEPAGENAMEE\";}s:12:\"talkpagename\";a:2:{i:0;i:1;i:1;s:12:\"TALKPAGENAME\";}s:13:\"talkpagenamee\";a:2:{i:0;i:1;i:1;s:13:\"TALKPAGENAMEE\";}s:15:\"subjectpagename\";a:3:{i:0;i:1;i:1;s:15:\"SUBJECTPAGENAME\";i:2;s:15:\"ARTICLEPAGENAME\";}s:16:\"subjectpagenamee\";a:3:{i:0;i:1;i:1;s:16:\"SUBJECTPAGENAMEE\";i:2;s:16:\"ARTICLEPAGENAMEE\";}s:3:\"msg\";a:2:{i:0;i:0;i:1;s:4:\"MSG:\";}s:5:\"subst\";a:2:{i:0;i:0;i:1;s:6:\"SUBST:\";}s:9:\"safesubst\";a:2:{i:0;i:0;i:1;s:10:\"SAFESUBST:\";}s:5:\"msgnw\";a:2:{i:0;i:0;i:1;s:6:\"MSGNW:\";}s:13:\"img_thumbnail\";a:3:{i:0;i:1;i:1;s:5:\"thumb\";i:2;s:9:\"thumbnail\";}s:15:\"img_manualthumb\";a:3:{i:0;i:1;i:1;s:12:\"thumbnail=$1\";i:2;s:8:\"thumb=$1\";}s:9:\"img_right\";a:2:{i:0;i:1;i:1;s:5:\"right\";}s:8:\"img_left\";a:2:{i:0;i:1;i:1;s:4:\"left\";}s:8:\"img_none\";a:2:{i:0;i:1;i:1;s:4:\"none\";}s:9:\"img_width\";a:2:{i:0;i:1;i:1;s:4:\"$1px\";}s:10:\"img_center\";a:3:{i:0;i:1;i:1;s:6:\"center\";i:2;s:6:\"centre\";}s:10:\"img_framed\";a:4:{i:0;i:1;i:1;s:5:\"frame\";i:2;s:6:\"framed\";i:3;s:8:\"enframed\";}s:13:\"img_frameless\";a:2:{i:0;i:1;i:1;s:9:\"frameless\";}s:8:\"img_lang\";a:2:{i:0;i:1;i:1;s:7:\"lang=$1\";}s:8:\"img_page\";a:3:{i:0;i:1;i:1;s:7:\"page=$1\";i:2;s:7:\"page $1\";}s:11:\"img_upright\";a:4:{i:0;i:1;i:1;s:7:\"upright\";i:2;s:10:\"upright=$1\";i:3;s:10:\"upright $1\";}s:10:\"img_border\";a:2:{i:0;i:1;i:1;s:6:\"border\";}s:12:\"img_baseline\";a:2:{i:0;i:1;i:1;s:8:\"baseline\";}s:7:\"img_sub\";a:2:{i:0;i:1;i:1;s:3:\"sub\";}s:9:\"img_super\";a:3:{i:0;i:1;i:1;s:5:\"super\";i:2;s:3:\"sup\";}s:7:\"img_top\";a:2:{i:0;i:1;i:1;s:3:\"top\";}s:12:\"img_text_top\";a:2:{i:0;i:1;i:1;s:8:\"text-top\";}s:10:\"img_middle\";a:2:{i:0;i:1;i:1;s:6:\"middle\";}s:10:\"img_bottom\";a:2:{i:0;i:1;i:1;s:6:\"bottom\";}s:15:\"img_text_bottom\";a:2:{i:0;i:1;i:1;s:11:\"text-bottom\";}s:8:\"img_link\";a:2:{i:0;i:1;i:1;s:7:\"link=$1\";}s:7:\"img_alt\";a:2:{i:0;i:1;i:1;s:6:\"alt=$1\";}s:9:\"img_class\";a:2:{i:0;i:1;i:1;s:8:\"class=$1\";}s:3:\"int\";a:2:{i:0;i:0;i:1;s:4:\"INT:\";}s:8:\"sitename\";a:2:{i:0;i:1;i:1;s:8:\"SITENAME\";}s:2:\"ns\";a:2:{i:0;i:0;i:1;s:3:\"NS:\";}s:3:\"nse\";a:2:{i:0;i:0;i:1;s:4:\"NSE:\";}s:8:\"localurl\";a:2:{i:0;i:0;i:1;s:9:\"LOCALURL:\";}s:9:\"localurle\";a:2:{i:0;i:0;i:1;s:10:\"LOCALURLE:\";}s:11:\"articlepath\";a:2:{i:0;i:0;i:1;s:11:\"ARTICLEPATH\";}s:6:\"pageid\";a:2:{i:0;i:0;i:1;s:6:\"PAGEID\";}s:6:\"server\";a:2:{i:0;i:0;i:1;s:6:\"SERVER\";}s:10:\"servername\";a:2:{i:0;i:0;i:1;s:10:\"SERVERNAME\";}s:10:\"scriptpath\";a:2:{i:0;i:0;i:1;s:10:\"SCRIPTPATH\";}s:9:\"stylepath\";a:2:{i:0;i:0;i:1;s:9:\"STYLEPATH\";}s:7:\"grammar\";a:2:{i:0;i:0;i:1;s:8:\"GRAMMAR:\";}s:6:\"gender\";a:2:{i:0;i:0;i:1;s:7:\"GENDER:\";}s:4:\"bidi\";a:2:{i:0;i:0;i:1;s:5:\"BIDI:\";}s:14:\"notitleconvert\";a:3:{i:0;i:0;i:1;s:18:\"__NOTITLECONVERT__\";i:2;s:8:\"__NOTC__\";}s:16:\"nocontentconvert\";a:3:{i:0;i:0;i:1;s:20:\"__NOCONTENTCONVERT__\";i:2;s:8:\"__NOCC__\";}s:11:\"currentweek\";a:2:{i:0;i:1;i:1;s:11:\"CURRENTWEEK\";}s:10:\"currentdow\";a:2:{i:0;i:1;i:1;s:10:\"CURRENTDOW\";}s:9:\"localweek\";a:2:{i:0;i:1;i:1;s:9:\"LOCALWEEK\";}s:8:\"localdow\";a:2:{i:0;i:1;i:1;s:8:\"LOCALDOW\";}s:10:\"revisionid\";a:2:{i:0;i:1;i:1;s:10:\"REVISIONID\";}s:11:\"revisionday\";a:2:{i:0;i:1;i:1;s:11:\"REVISIONDAY\";}s:12:\"revisionday2\";a:2:{i:0;i:1;i:1;s:12:\"REVISIONDAY2\";}s:13:\"revisionmonth\";a:2:{i:0;i:1;i:1;s:13:\"REVISIONMONTH\";}s:14:\"revisionmonth1\";a:2:{i:0;i:1;i:1;s:14:\"REVISIONMONTH1\";}s:12:\"revisionyear\";a:2:{i:0;i:1;i:1;s:12:\"REVISIONYEAR\";}s:17:\"revisiontimestamp\";a:2:{i:0;i:1;i:1;s:17:\"REVISIONTIMESTAMP\";}s:12:\"revisionuser\";a:2:{i:0;i:1;i:1;s:12:\"REVISIONUSER\";}s:12:\"revisionsize\";a:2:{i:0;i:1;i:1;s:12:\"REVISIONSIZE\";}s:6:\"plural\";a:2:{i:0;i:0;i:1;s:7:\"PLURAL:\";}s:7:\"fullurl\";a:2:{i:0;i:0;i:1;s:8:\"FULLURL:\";}s:8:\"fullurle\";a:2:{i:0;i:0;i:1;s:9:\"FULLURLE:\";}s:12:\"canonicalurl\";a:2:{i:0;i:0;i:1;s:13:\"CANONICALURL:\";}s:13:\"canonicalurle\";a:2:{i:0;i:0;i:1;s:14:\"CANONICALURLE:\";}s:7:\"lcfirst\";a:2:{i:0;i:0;i:1;s:8:\"LCFIRST:\";}s:7:\"ucfirst\";a:2:{i:0;i:0;i:1;s:8:\"UCFIRST:\";}s:2:\"lc\";a:2:{i:0;i:0;i:1;s:3:\"LC:\";}s:2:\"uc\";a:2:{i:0;i:0;i:1;s:3:\"UC:\";}s:3:\"raw\";a:2:{i:0;i:0;i:1;s:4:\"RAW:\";}s:12:\"displaytitle\";a:2:{i:0;i:1;i:1;s:12:\"DISPLAYTITLE\";}s:9:\"rawsuffix\";a:2:{i:0;i:1;i:1;s:1:\"R\";}s:15:\"nocommafysuffix\";a:2:{i:0;i:0;i:1;s:5:\"NOSEP\";}s:14:\"newsectionlink\";a:2:{i:0;i:1;i:1;s:18:\"__NEWSECTIONLINK__\";}s:16:\"nonewsectionlink\";a:2:{i:0;i:1;i:1;s:20:\"__NONEWSECTIONLINK__\";}s:14:\"currentversion\";a:2:{i:0;i:1;i:1;s:14:\"CURRENTVERSION\";}s:9:\"urlencode\";a:2:{i:0;i:0;i:1;s:10:\"URLENCODE:\";}s:12:\"anchorencode\";a:2:{i:0;i:0;i:1;s:12:\"ANCHORENCODE\";}s:16:\"currenttimestamp\";a:2:{i:0;i:1;i:1;s:16:\"CURRENTTIMESTAMP\";}s:14:\"localtimestamp\";a:2:{i:0;i:1;i:1;s:14:\"LOCALTIMESTAMP\";}s:13:\"directionmark\";a:3:{i:0;i:1;i:1;s:13:\"DIRECTIONMARK\";i:2;s:7:\"DIRMARK\";}s:8:\"language\";a:2:{i:0;i:0;i:1;s:10:\"#LANGUAGE:\";}s:15:\"contentlanguage\";a:3:{i:0;i:1;i:1;s:15:\"CONTENTLANGUAGE\";i:2;s:11:\"CONTENTLANG\";}s:12:\"pagelanguage\";a:2:{i:0;i:1;i:1;s:12:\"PAGELANGUAGE\";}s:16:\"pagesinnamespace\";a:3:{i:0;i:1;i:1;s:17:\"PAGESINNAMESPACE:\";i:2;s:10:\"PAGESINNS:\";}s:14:\"numberofadmins\";a:2:{i:0;i:1;i:1;s:14:\"NUMBEROFADMINS\";}s:9:\"formatnum\";a:2:{i:0;i:0;i:1;s:9:\"FORMATNUM\";}s:7:\"padleft\";a:2:{i:0;i:0;i:1;s:7:\"PADLEFT\";}s:8:\"padright\";a:2:{i:0;i:0;i:1;s:8:\"PADRIGHT\";}s:7:\"special\";a:2:{i:0;i:0;i:1;s:7:\"special\";}s:8:\"speciale\";a:2:{i:0;i:0;i:1;s:8:\"speciale\";}s:11:\"defaultsort\";a:4:{i:0;i:1;i:1;s:12:\"DEFAULTSORT:\";i:2;s:15:\"DEFAULTSORTKEY:\";i:3;s:20:\"DEFAULTCATEGORYSORT:\";}s:8:\"filepath\";a:2:{i:0;i:0;i:1;s:9:\"FILEPATH:\";}s:3:\"tag\";a:2:{i:0;i:0;i:1;s:3:\"tag\";}s:9:\"hiddencat\";a:2:{i:0;i:1;i:1;s:13:\"__HIDDENCAT__\";}s:15:\"pagesincategory\";a:3:{i:0;i:1;i:1;s:15:\"PAGESINCATEGORY\";i:2;s:10:\"PAGESINCAT\";}s:8:\"pagesize\";a:2:{i:0;i:1;i:1;s:8:\"PAGESIZE\";}s:5:\"index\";a:2:{i:0;i:1;i:1;s:9:\"__INDEX__\";}s:7:\"noindex\";a:2:{i:0;i:1;i:1;s:11:\"__NOINDEX__\";}s:13:\"numberingroup\";a:3:{i:0;i:1;i:1;s:13:\"NUMBERINGROUP\";i:2;s:10:\"NUMINGROUP\";}s:14:\"staticredirect\";a:2:{i:0;i:1;i:1;s:18:\"__STATICREDIRECT__\";}s:15:\"protectionlevel\";a:2:{i:0;i:1;i:1;s:15:\"PROTECTIONLEVEL\";}s:16:\"protectionexpiry\";a:2:{i:0;i:1;i:1;s:16:\"PROTECTIONEXPIRY\";}s:16:\"cascadingsources\";a:2:{i:0;i:1;i:1;s:16:\"CASCADINGSOURCES\";}s:10:\"formatdate\";a:3:{i:0;i:0;i:1;s:10:\"formatdate\";i:2;s:10:\"dateformat\";}s:8:\"url_path\";a:2:{i:0;i:0;i:1;s:4:\"PATH\";}s:8:\"url_wiki\";a:2:{i:0;i:0;i:1;s:4:\"WIKI\";}s:9:\"url_query\";a:2:{i:0;i:0;i:1;s:5:\"QUERY\";}s:19:\"defaultsort_noerror\";a:2:{i:0;i:0;i:1;s:7:\"noerror\";}s:21:\"defaultsort_noreplace\";a:2:{i:0;i:0;i:1;s:9:\"noreplace\";}s:20:\"displaytitle_noerror\";a:2:{i:0;i:0;i:1;s:7:\"noerror\";}s:22:\"displaytitle_noreplace\";a:2:{i:0;i:0;i:1;s:9:\"noreplace\";}s:19:\"pagesincategory_all\";a:2:{i:0;i:0;i:1;s:3:\"all\";}s:21:\"pagesincategory_pages\";a:2:{i:0;i:0;i:1;s:5:\"pages\";}s:23:\"pagesincategory_subcats\";a:2:{i:0;i:0;i:1;s:7:\"subcats\";}s:21:\"pagesincategory_files\";a:2:{i:0;i:0;i:1;s:5:\"files\";}}'),('en','messages:sidebar','s:168:\"\n* navigation\n** mainpage|mainpage-description\n** recentchanges-url|recentchanges\n** randompage-url|randompage\n** helppage|help-mediawiki\n* SEARCH\n* TOOLBOX\n* LANGUAGES\";'),('en','messages:tog-underline','s:17:\"Link underlining:\";'),('en','messages:tog-hideminor','s:36:\"Hide minor edits from recent changes\";'),('en','messages:tog-hidepatrolled','s:40:\"Hide patrolled edits from recent changes\";'),('en','messages:tog-newpageshidepatrolled','s:39:\"Hide patrolled pages from new page list\";'),('en','messages:tog-hidecategorization','s:28:\"Hide categorization of pages\";'),('en','messages:tog-extendwatchlist','s:62:\"Expand watchlist to show all changes, not just the most recent\";'),('en','messages:tog-usenewrc','s:53:\"Group changes by page in recent changes and watchlist\";'),('en','messages:tog-numberheadings','s:20:\"Auto-number headings\";'),('en','messages:tog-showtoolbar','s:17:\"Show edit toolbar\";'),('en','messages:tog-editondblclick','s:26:\"Edit pages on double click\";'),('en','messages:tog-editsectiononrightclick','s:58:\"Enable section editing by right clicking on section titles\";'),('en','messages:tog-watchcreations','s:53:\"Add pages I create and files I upload to my watchlist\";'),('en','messages:tog-watchdefault','s:42:\"Add pages and files I edit to my watchlist\";'),('en','messages:tog-watchmoves','s:42:\"Add pages and files I move to my watchlist\";'),('en','messages:tog-watchdeletion','s:44:\"Add pages and files I delete to my watchlist\";'),('en','messages:tog-watchuploads','s:38:\"Add new files I upload to my watchlist\";'),('en','messages:tog-watchrollback','s:59:\"Add pages where I have performed a rollback to my watchlist\";'),('en','messages:tog-minordefault','s:31:\"Mark all edits minor by default\";'),('en','messages:tog-previewontop','s:28:\"Show preview before edit box\";'),('en','messages:tog-previewonfirst','s:26:\"Show preview on first edit\";'),('en','messages:tog-enotifwatchlistpages','s:57:\"Email me when a page or a file on my watchlist is changed\";'),('en','messages:tog-enotifusertalkpages','s:42:\"Email me when my user talk page is changed\";'),('en','messages:tog-enotifminoredits','s:48:\"Email me also for minor edits of pages and files\";'),('en','messages:tog-enotifrevealaddr','s:46:\"Reveal my email address in notification emails\";'),('en','messages:tog-shownumberswatching','s:33:\"Show the number of watching users\";'),('en','messages:tog-oldsig','s:24:\"Your existing signature:\";'),('en','messages:tog-fancysig','s:55:\"Treat signature as wikitext (without an automatic link)\";'),('en','messages:tog-uselivepreview','s:40:\"Show previews without reloading the page\";'),('en','messages:tog-forceeditsummary','s:44:\"Prompt me when entering a blank edit summary\";'),('en','messages:tog-watchlisthideown','s:32:\"Hide my edits from the watchlist\";'),('en','messages:tog-watchlisthidebots','s:33:\"Hide bot edits from the watchlist\";'),('en','messages:tog-watchlisthideminor','s:35:\"Hide minor edits from the watchlist\";'),('en','messages:tog-watchlisthideliu','s:48:\"Hide edits by logged in users from the watchlist\";'),('en','messages:tog-watchlistreloadautomatically','s:85:\"Reload the watchlist automatically whenever a filter is changed (JavaScript required)\";'),('en','messages:tog-watchlistunwatchlinks','s:168:\"Add direct unwatch/watch markers ({{int:Watchlist-unwatch}}/{{int:Watchlist-unwatch-undo}}) to watched pages with changes (JavaScript required for toggle functionality)\";'),('en','messages:tog-watchlisthideanons','s:48:\"Hide edits by anonymous users from the watchlist\";'),('en','messages:tog-watchlisthidepatrolled','s:39:\"Hide patrolled edits from the watchlist\";'),('en','messages:tog-watchlisthidecategorization','s:28:\"Hide categorization of pages\";'),('en','messages:tog-ccmeonemails','s:46:\"Send me copies of emails I send to other users\";'),('en','messages:tog-diffonly','s:36:\"Do not show page content below diffs\";'),('en','messages:tog-showhiddencats','s:22:\"Show hidden categories\";'),('en','messages:tog-norollbackdiff','s:43:\"Don\'t show diff after performing a rollback\";'),('en','messages:tog-useeditwarning','s:54:\"Warn me when I leave an edit page with unsaved changes\";'),('en','messages:tog-prefershttps','s:46:\"Always use a secure connection while logged in\";'),('en','messages:underline-always','s:6:\"Always\";'),('en','messages:underline-never','s:5:\"Never\";'),('en','messages:underline-default','s:23:\"Skin or browser default\";'),('en','messages:editfont-style','s:21:\"Edit area font style:\";'),('en','messages:editfont-monospace','s:15:\"Monospaced font\";'),('en','messages:editfont-sansserif','s:15:\"Sans-serif font\";'),('en','messages:editfont-serif','s:10:\"Serif font\";'),('en','messages:sunday','s:6:\"Sunday\";'),('en','messages:monday','s:6:\"Monday\";'),('en','messages:tuesday','s:7:\"Tuesday\";'),('en','messages:wednesday','s:9:\"Wednesday\";'),('en','messages:thursday','s:8:\"Thursday\";'),('en','messages:friday','s:6:\"Friday\";'),('en','messages:saturday','s:8:\"Saturday\";'),('en','messages:sun','s:3:\"Sun\";'),('en','messages:mon','s:3:\"Mon\";'),('en','messages:tue','s:3:\"Tue\";'),('en','messages:wed','s:3:\"Wed\";'),('en','messages:thu','s:3:\"Thu\";'),('en','messages:fri','s:3:\"Fri\";'),('en','messages:sat','s:3:\"Sat\";'),('en','messages:january','s:7:\"January\";'),('en','messages:february','s:8:\"February\";'),('en','messages:march','s:5:\"March\";'),('en','messages:april','s:5:\"April\";'),('en','messages:may_long','s:3:\"May\";'),('en','messages:june','s:4:\"June\";'),('en','messages:july','s:4:\"July\";'),('en','messages:august','s:6:\"August\";'),('en','messages:september','s:9:\"September\";'),('en','messages:october','s:7:\"October\";'),('en','messages:november','s:8:\"November\";'),('en','messages:december','s:8:\"December\";'),('en','messages:january-gen','s:7:\"January\";'),('en','messages:february-gen','s:8:\"February\";'),('en','messages:march-gen','s:5:\"March\";'),('en','messages:april-gen','s:5:\"April\";'),('en','messages:may-gen','s:3:\"May\";'),('en','messages:june-gen','s:4:\"June\";'),('en','messages:july-gen','s:4:\"July\";'),('en','messages:august-gen','s:6:\"August\";'),('en','messages:september-gen','s:9:\"September\";'),('en','messages:october-gen','s:7:\"October\";'),('en','messages:november-gen','s:8:\"November\";'),('en','messages:december-gen','s:8:\"December\";'),('en','messages:jan','s:3:\"Jan\";'),('en','messages:feb','s:3:\"Feb\";'),('en','messages:mar','s:3:\"Mar\";'),('en','messages:apr','s:3:\"Apr\";'),('en','messages:may','s:3:\"May\";'),('en','messages:jun','s:3:\"Jun\";'),('en','messages:jul','s:3:\"Jul\";'),('en','messages:aug','s:3:\"Aug\";'),('en','messages:sep','s:3:\"Sep\";'),('en','messages:oct','s:3:\"Oct\";'),('en','messages:nov','s:3:\"Nov\";'),('en','messages:dec','s:3:\"Dec\";'),('en','messages:january-date','s:10:\"January $1\";'),('en','messages:february-date','s:11:\"February $1\";'),('en','messages:march-date','s:8:\"March $1\";'),('en','messages:april-date','s:8:\"April $1\";'),('en','messages:may-date','s:6:\"May $1\";'),('en','messages:june-date','s:7:\"June $1\";'),('en','messages:july-date','s:7:\"July $1\";'),('en','messages:august-date','s:9:\"August $1\";'),('en','messages:september-date','s:12:\"September $1\";'),('en','messages:october-date','s:10:\"October $1\";'),('en','messages:november-date','s:11:\"November $1\";'),('en','messages:december-date','s:11:\"December $1\";'),('en','messages:period-am','s:2:\"AM\";'),('en','messages:period-pm','s:2:\"PM\";'),('en','messages:pagecategories','s:33:\"{{PLURAL:$1|Category|Categories}}\";'),('en','messages:pagecategorieslink','s:18:\"Special:Categories\";'),('en','messages:category_header','s:22:\"Pages in category \"$1\"\";'),('en','messages:subcategories','s:13:\"Subcategories\";'),('en','messages:category-media-header','s:22:\"Media in category \"$1\"\";'),('en','messages:category-empty','s:60:\"<em>This category currently contains no pages or media.</em>\";'),('en','messages:hidden-categories','s:47:\"{{PLURAL:$1|Hidden category|Hidden categories}}\";'),('en','messages:hidden-category-category','s:17:\"Hidden categories\";'),('en','messages:category-subcat-count','s:156:\"{{PLURAL:$2|This category has only the following subcategory.|This category has the following {{PLURAL:$1|subcategory|$1 subcategories}}, out of $2 total.}}\";'),('en','messages:category-subcat-count-limited','s:75:\"This category has the following {{PLURAL:$1|subcategory|$1 subcategories}}.\";'),('en','messages:category-article-count','s:145:\"{{PLURAL:$2|This category contains only the following page.|The following {{PLURAL:$1|page is|$1 pages are}} in this category, out of $2 total.}}\";'),('en','messages:category-article-count-limited','s:73:\"The following {{PLURAL:$1|page is|$1 pages are}} in the current category.\";'),('en','messages:category-file-count','s:145:\"{{PLURAL:$2|This category contains only the following file.|The following {{PLURAL:$1|file is|$1 files are}} in this category, out of $2 total.}}\";'),('en','messages:category-file-count-limited','s:73:\"The following {{PLURAL:$1|file is|$1 files are}} in the current category.\";'),('en','messages:listingcontinuesabbrev','s:5:\"cont.\";'),('en','messages:index-category','s:13:\"Indexed pages\";'),('en','messages:noindex-category','s:15:\"Noindexed pages\";'),('en','messages:broken-file-category','s:28:\"Pages with broken file links\";'),('en','messages:categoryviewer-pagedlinks','s:9:\"($1) ($2)\";'),('en','messages:category-header-numerals','s:7:\"$1–$2\";'),('en','messages:about','s:5:\"About\";'),('en','messages:article','s:12:\"Content page\";'),('en','messages:newwindow','s:21:\"(opens in new window)\";'),('en','messages:cancel','s:6:\"Cancel\";'),('en','messages:moredotdotdot','s:7:\"More...\";'),('en','messages:morenotlisted','s:28:\"This list may be incomplete.\";'),('en','messages:mypage','s:4:\"Page\";'),('en','messages:mytalk','s:4:\"Talk\";'),('en','messages:anontalk','s:4:\"Talk\";'),('en','messages:navigation','s:10:\"Navigation\";'),('en','messages:and','s:8:\"&#32;and\";'),('en','messages:faq','s:3:\"FAQ\";'),('en','messages:sitetitle','s:12:\"{{SITENAME}}\";'),('en','messages:sitesubtitle','s:0:\"\";'),('en','messages:actions','s:7:\"Actions\";'),('en','messages:namespaces','s:10:\"Namespaces\";'),('en','messages:variants','s:8:\"Variants\";'),('en','messages:navigation-heading','s:15:\"Navigation menu\";'),('en','messages:errorpagetitle','s:5:\"Error\";'),('en','messages:returnto','s:13:\"Return to $1.\";'),('en','messages:tagline','s:17:\"From {{SITENAME}}\";'),('en','messages:help','s:4:\"Help\";'),('en','messages:help-mediawiki','s:20:\"Help about MediaWiki\";'),('en','messages:search','s:6:\"Search\";'),('en','messages:search-ignored-headings','s:492:\" #<!-- leave this line exactly as it is --> <pre>\n# Headings that will be ignored by search.\n# Changes to this take effect as soon as the page with the heading is indexed.\n# You can force page reindexing by doing a null edit.\n# The syntax is as follows:\n# * Everything from a \"#\" character to the end of the line is a comment.\n# * Every non-blank line is the exact title to ignore, case and everything.\nReferences\nExternal links\nSee also\n #</pre> <!-- leave this line exactly as it is -->\";'),('en','messages:searchbutton','s:6:\"Search\";'),('en','messages:go','s:2:\"Go\";'),('en','messages:searcharticle','s:2:\"Go\";'),('en','messages:history','s:12:\"Page history\";'),('en','messages:history_short','s:7:\"History\";'),('en','messages:history_small','s:7:\"history\";'),('en','messages:updatedmarker','s:27:\"updated since my last visit\";'),('en','messages:printableversion','s:17:\"Printable version\";'),('en','messages:permalink','s:14:\"Permanent link\";'),('en','messages:print','s:5:\"Print\";'),('en','messages:view','s:4:\"View\";'),('en','messages:view-foreign','s:10:\"View on $1\";'),('en','messages:edit','s:4:\"Edit\";'),('en','messages:edit-local','s:22:\"Edit local description\";'),('en','messages:create','s:6:\"Create\";'),('en','messages:create-local','s:21:\"Add local description\";'),('en','messages:delete','s:6:\"Delete\";'),('en','messages:undelete_short','s:40:\"Undelete {{PLURAL:$1|one edit|$1 edits}}\";'),('en','messages:viewdeleted_short','s:52:\"View {{PLURAL:$1|one deleted edit|$1 deleted edits}}\";'),('en','messages:protect','s:7:\"Protect\";'),('en','messages:protect_change','s:6:\"change\";'),('en','messages:unprotect','s:17:\"Change protection\";'),('en','messages:newpage','s:8:\"New page\";'),('en','messages:talkpagelinktext','s:4:\"talk\";'),('en','messages:specialpage','s:12:\"Special page\";'),('en','messages:personaltools','s:14:\"Personal tools\";'),('en','messages:addsection','s:1:\"+\";'),('en','messages:talk','s:10:\"Discussion\";'),('en','messages:views','s:5:\"Views\";'),('en','messages:toolbox','s:5:\"Tools\";'),('en','messages:tool-link-userrights','s:32:\"Change {{GENDER:$1|user}} groups\";'),('en','messages:tool-link-userrights-readonly','s:30:\"View {{GENDER:$1|user}} groups\";'),('en','messages:tool-link-emailuser','s:29:\"Email this {{GENDER:$1|user}}\";'),('en','messages:imagepage','s:14:\"View file page\";'),('en','messages:mediawikipage','s:17:\"View message page\";'),('en','messages:templatepage','s:18:\"View template page\";'),('en','messages:viewhelppage','s:14:\"View help page\";'),('en','messages:categorypage','s:18:\"View category page\";'),('en','messages:viewtalkpage','s:15:\"View discussion\";'),('en','messages:otherlanguages','s:18:\"In other languages\";'),('en','messages:redirectedfrom','s:20:\"(Redirected from $1)\";'),('en','messages:redirectpagesub','s:13:\"Redirect page\";'),('en','messages:redirectto','s:12:\"Redirect to:\";'),('en','messages:talkpageheader','s:1:\"-\";'),('en','messages:lastmodifiedat','s:39:\"This page was last edited on $1, at $2.\";'),('en','messages:viewcount','s:56:\"This page has been accessed {{PLURAL:$1|once|$1 times}}.\";'),('en','messages:protectedpage','s:14:\"Protected page\";'),('en','messages:jumpto','s:8:\"Jump to:\";'),('en','messages:jumptonavigation','s:10:\"navigation\";'),('en','messages:jumptosearch','s:6:\"search\";'),('en','messages:view-pool-error','s:159:\"Sorry, the servers are overloaded at the moment.\nToo many users are trying to view this page.\nPlease wait a while before you try to access this page again.\n\n$1\";'),('en','messages:generic-pool-error','s:163:\"Sorry, the servers are overloaded at the moment.\nToo many users are trying to view this resource.\nPlease wait a while before you try to access this resource again.\";'),('en','messages:pool-timeout','s:28:\"Timeout waiting for the lock\";'),('en','messages:pool-queuefull','s:18:\"Pool queue is full\";'),('en','messages:pool-errorunknown','s:13:\"Unknown error\";'),('en','messages:pool-servererror','s:47:\"The pool counter service is not available ($1).\";'),('en','messages:poolcounter-usage-error','s:15:\"Usage error: $1\";'),('en','messages:aboutsite','s:18:\"About {{SITENAME}}\";'),('en','messages:aboutpage','s:13:\"Project:About\";'),('en','messages:copyright','s:53:\"Content is available under $1 unless otherwise noted.\";'),('en','messages:copyrightpage','s:25:\"{{ns:project}}:Copyrights\";'),('en','messages:currentevents','s:14:\"Current events\";'),('en','messages:currentevents-url','s:22:\"Project:Current events\";'),('en','messages:disclaimers','s:11:\"Disclaimers\";'),('en','messages:disclaimerpage','s:26:\"Project:General disclaimer\";'),('en','messages:edithelp','s:12:\"Editing help\";'),('en','messages:edithelppage','s:68:\"https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Editing_pages\";'),('en','messages:helppage','s:63:\"https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents\";'),('en','messages:helppage-top-gethelp','s:4:\"Help\";'),('en','messages:mainpage','s:9:\"Main Page\";'),('en','messages:mainpage-description','s:9:\"Main page\";'),('en','messages:policy-url','s:14:\"Project:Policy\";'),('en','messages:portal','s:16:\"Community portal\";'),('en','messages:portal-url','s:24:\"Project:Community portal\";'),('en','messages:privacy','s:14:\"Privacy policy\";'),('en','messages:privacypage','s:22:\"Project:Privacy policy\";'),('en','messages:badaccess','s:16:\"Permission error\";'),('en','messages:badaccess-group0','s:61:\"You are not allowed to execute the action you have requested.\";'),('en','messages:badaccess-groups','s:99:\"The action you have requested is limited to users in {{PLURAL:$2|the group|one of the groups}}: $1.\";'),('en','messages:versionrequired','s:32:\"Version $1 of MediaWiki required\";'),('en','messages:versionrequiredtext','s:91:\"Version $1 of MediaWiki is required to use this page.\nSee [[Special:Version|version page]].\";'),('en','messages:ok','s:2:\"OK\";'),('en','messages:pagetitle','s:17:\"$1 - {{SITENAME}}\";'),('en','messages:pagetitle-view-mainpage','s:12:\"{{SITENAME}}\";'),('en','messages:backlinksubtitle','s:6:\"← $1\";'),('en','messages:retrievedfrom','s:19:\"Retrieved from \"$1\"\";'),('en','messages:youhavenewmessages','s:31:\"{{PLURAL:$3|You have}} $1 ($2).\";'),('en','messages:youhavenewmessagesfromusers','s:72:\"{{PLURAL:$4|You have}} $1 from {{PLURAL:$3|another user|$3 users}} ($2).\";'),('en','messages:youhavenewmessagesmanyusers','s:33:\"You have $1 from many users ($2).\";'),('en','messages:newmessageslinkplural','s:44:\"{{PLURAL:$1|a new message|999=new messages}}\";'),('en','messages:newmessagesdifflinkplural','s:37:\"last {{PLURAL:$1|change|999=changes}}\";'),('en','messages:youhavenewmessagesmulti','s:27:\"You have new messages on $1\";'),('en','messages:newtalkseparator','s:6:\",&#32;\";'),('en','messages:editsection','s:4:\"edit\";'),('en','messages:editold','s:4:\"edit\";'),('en','messages:viewsourceold','s:11:\"view source\";'),('en','messages:editlink','s:4:\"edit\";'),('en','messages:viewsourcelink','s:11:\"view source\";'),('en','messages:editsectionhint','s:16:\"Edit section: $1\";'),('en','messages:toc','s:8:\"Contents\";'),('en','messages:showtoc','s:4:\"show\";'),('en','messages:hidetoc','s:4:\"hide\";'),('en','messages:collapsible-collapse','s:8:\"Collapse\";'),('en','messages:collapsible-expand','s:6:\"Expand\";'),('en','messages:confirmable-confirm','s:27:\"Are {{GENDER:$1|you}} sure?\";'),('en','messages:confirmable-yes','s:3:\"Yes\";'),('en','messages:confirmable-no','s:2:\"No\";'),('en','messages:thisisdeleted','s:19:\"View or restore $1?\";'),('en','messages:viewdeleted','s:8:\"View $1?\";'),('en','messages:restorelink','s:47:\"{{PLURAL:$1|one deleted edit|$1 deleted edits}}\";'),('en','messages:feedlinks','s:5:\"Feed:\";'),('en','messages:feed-invalid','s:31:\"Invalid subscription feed type.\";'),('en','messages:feed-unavailable','s:35:\"Syndication feeds are not available\";'),('en','messages:site-rss-feed','s:11:\"$1 RSS feed\";'),('en','messages:site-atom-feed','s:12:\"$1 Atom feed\";'),('en','messages:page-rss-feed','s:13:\"\"$1\" RSS feed\";'),('en','messages:page-atom-feed','s:14:\"\"$1\" Atom feed\";'),('en','messages:feed-atom','s:4:\"Atom\";'),('en','messages:feed-rss','s:3:\"RSS\";'),('en','messages:sitenotice','s:1:\"-\";'),('en','messages:anonnotice','s:1:\"-\";'),('en','messages:newsectionheaderdefaultlevel','s:8:\"== $1 ==\";'),('en','messages:red-link-title','s:24:\"$1 (page does not exist)\";'),('en','messages:sort-descending','s:15:\"Sort descending\";'),('en','messages:sort-ascending','s:14:\"Sort ascending\";'),('en','messages:nstab-main','s:4:\"Page\";'),('en','messages:nstab-user','s:9:\"User page\";'),('en','messages:nstab-media','s:10:\"Media page\";'),('en','messages:nstab-special','s:12:\"Special page\";'),('en','messages:nstab-project','s:12:\"Project page\";'),('en','messages:nstab-image','s:4:\"File\";'),('en','messages:nstab-mediawiki','s:7:\"Message\";'),('en','messages:nstab-template','s:8:\"Template\";'),('en','messages:nstab-help','s:9:\"Help page\";'),('en','messages:nstab-category','s:8:\"Category\";'),('en','messages:mainpage-nstab','s:9:\"Main page\";'),('en','messages:nosuchaction','s:14:\"No such action\";'),('en','messages:nosuchactiontext','s:176:\"The action specified by the URL is invalid.\nYou might have mistyped the URL, or followed an incorrect link.\nThis might also indicate a bug in the software used by {{SITENAME}}.\";'),('en','messages:nosuchspecialpage','s:20:\"No such special page\";'),('en','messages:nospecialpagetext','s:154:\"<strong>You have requested an invalid special page.</strong>\n\nA list of valid special pages can be found at [[Special:SpecialPages|{{int:specialpages}}]].\";'),('en','messages:error','s:5:\"Error\";'),('en','messages:databaseerror','s:14:\"Database error\";'),('en','messages:databaseerror-text','s:77:\"A database query error has occurred.\nThis may indicate a bug in the software.\";'),('en','messages:databaseerror-textcl','s:36:\"A database query error has occurred.\";'),('en','messages:databaseerror-query','s:9:\"Query: $1\";'),('en','messages:databaseerror-function','s:12:\"Function: $1\";'),('en','messages:databaseerror-error','s:9:\"Error: $1\";'),('en','messages:transaction-duration-limit-exceeded','s:217:\"To avoid creating high replication lag, this transaction was aborted because the write duration ($1) exceeded the $2 second limit.\nIf you are changing many items at once, try doing multiple smaller operations instead.\";'),('en','messages:laggedslavemode','s:62:\"<strong>Warning:</strong> Page may not contain recent updates.\";'),('en','messages:readonly','s:15:\"Database locked\";'),('en','messages:enterlockreason','s:84:\"Enter a reason for the lock, including an estimate of when the lock will be released\";'),('en','messages:readonlytext','s:223:\"The database is currently locked to new entries and other modifications, probably for routine database maintenance, after which it will be back to normal.\n\nThe system administrator who locked it offered this explanation: $1\";'),('en','messages:missing-article','s:349:\"The database did not find the text of a page that it should have found, named \"$1\" $2.\n\nThis is usually caused by following an outdated diff or history link to a page that has been deleted.\n\nIf this is not the case, you may have found a bug in the software.\nPlease report this to an [[Special:ListUsers/sysop|administrator]], making note of the URL.\";'),('en','messages:missingarticle-rev','s:15:\"(revision#: $1)\";'),('en','messages:missingarticle-diff','s:14:\"(Diff: $1, $2)\";'),('en','messages:readonly_lag','s:98:\"The database has been automatically locked while the slave database servers catch up to the master\";'),('en','messages:nonwrite-api-promise-error','s:99:\"The \'Promise-Non-Write-API-Action\' HTTP header was sent but the request was to an API write module.\";'),('en','messages:internalerror','s:14:\"Internal error\";'),('en','messages:internalerror_info','s:18:\"Internal error: $1\";'),('en','messages:internalerror-fatal-exception','s:28:\"Fatal exception of type \"$1\"\";'),('en','messages:filecopyerror','s:33:\"Could not copy file \"$1\" to \"$2\".\";'),('en','messages:filerenameerror','s:35:\"Could not rename file \"$1\" to \"$2\".\";'),('en','messages:filedeleteerror','s:27:\"Could not delete file \"$1\".\";'),('en','messages:directorycreateerror','s:32:\"Could not create directory \"$1\".\";'),('en','messages:directoryreadonlyerror','s:28:\"Directory \"$1\" is read-only.\";'),('en','messages:directorynotreadableerror','s:31:\"Directory \"$1\" is not readable.\";'),('en','messages:filenotfound','s:25:\"Could not find file \"$1\".\";'),('en','messages:unexpected','s:28:\"Unexpected value: \"$1\"=\"$2\".\";'),('en','messages:formerror','s:29:\"Error: Could not submit form.\";'),('en','messages:badarticleerror','s:45:\"This action cannot be performed on this page.\";'),('en','messages:cannotdelete','s:93:\"The page or file \"$1\" could not be deleted.\nIt may have already been deleted by someone else.\";'),('en','messages:cannotdelete-title','s:23:\"Cannot delete page \"$1\"\";'),('en','messages:delete-hook-aborted','s:49:\"Deletion aborted by hook.\nIt gave no explanation.\";'),('en','messages:no-null-revision','s:48:\"Could not create new null revision for page \"$1\"\";'),('en','messages:badtitle','s:9:\"Bad title\";'),('en','messages:badtitletext','s:174:\"The requested page title was invalid, empty, or an incorrectly linked inter-language or inter-wiki title.\nIt may contain one or more characters that cannot be used in titles.\";'),('en','messages:title-invalid-empty','s:75:\"The requested page title is empty or contains only the name of a namespace.\";'),('en','messages:title-invalid-utf8','s:60:\"The requested page title contains an invalid UTF-8 sequence.\";'),('en','messages:title-invalid-interwiki','s:83:\"The requested page title contains an interwiki link which cannot be used in titles.\";'),('en','messages:title-invalid-talk-namespace','s:66:\"The requested page title refers to a talk page that can not exist.\";'),('en','messages:title-invalid-characters','s:59:\"The requested page title contains invalid characters: \"$1\".\";'),('en','messages:title-invalid-relative','s:139:\"Title has relative path. Relative page titles (./, ../) are invalid, because they will often be unreachable when handled by user\'s browser.\";'),('en','messages:title-invalid-magic-tilde','s:86:\"The requested page title contains invalid magic tilde sequence (<nowiki>~~~</nowiki>).\";'),('en','messages:title-invalid-too-long','s:110:\"The requested page title is too long. It must be no longer than $1 {{PLURAL:$1|byte|bytes}} in UTF-8 encoding.\";'),('en','messages:title-invalid-leading-colon','s:68:\"The requested page title contains an invalid colon at the beginning.\";'),('en','messages:perfcached','s:135:\"The following data is cached and may not be up to date. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.\";'),('en','messages:perfcachedts','s:134:\"The following data is cached, and was last updated $1. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.\";'),('en','messages:querypage-no-updates','s:88:\"Updates for this page are currently disabled.\nData here will not presently be refreshed.\";'),('en','messages:viewsource','s:11:\"View source\";'),('en','messages:viewsource-title','s:18:\"View source for $1\";'),('en','messages:actionthrottled','s:16:\"Action throttled\";'),('en','messages:actionthrottledtext','s:179:\"As an anti-abuse measure, you are limited from performing this action too many times in a short space of time, and you have exceeded this limit.\nPlease try again in a few minutes.\";'),('en','messages:protectedpagetext','s:65:\"This page has been protected to prevent editing or other actions.\";'),('en','messages:viewsourcetext','s:46:\"You can view and copy the source of this page.\";'),('en','messages:viewyourtext','s:77:\"You can view and copy the source of <strong>your edits</strong> to this page.\";'),('en','messages:protectedinterface','s:239:\"This page provides interface text for the software on this wiki, and is protected to prevent abuse.\nTo add or change translations for all wikis, please use [https://translatewiki.net/ translatewiki.net], the MediaWiki localisation project.\";'),('en','messages:editinginterface','s:205:\"<strong>Warning:</strong> You are editing a page that is used to provide interface text for the software.\nChanges to this page will affect the appearance of the user interface for other users on this wiki.\";'),('en','messages:translateinterface','s:139:\"To add or change translations for all wikis, please use [https://translatewiki.net/ translatewiki.net], the MediaWiki localisation project.\";'),('en','messages:cascadeprotected','s:182:\"This page has been protected from editing because it is transcluded in the following {{PLURAL:$1|page, which is|pages, which are}} protected with the \"cascading\" option turned on:\n$2\";'),('en','messages:namespaceprotected','s:78:\"You do not have permission to edit pages in the <strong>$1</strong> namespace.\";'),('en','messages:customcssprotected','s:102:\"You do not have permission to edit this CSS page because it contains another user\'s personal settings.\";'),('en','messages:customjsonprotected','s:103:\"You do not have permission to edit this JSON page because it contains another user\'s personal settings.\";'),('en','messages:customjsprotected','s:109:\"You do not have permission to edit this JavaScript page because it contains another user\'s personal settings.\";'),('en','messages:mycustomcssprotected','s:49:\"You do not have permission to edit this CSS page.\";'),('en','messages:mycustomjsonprotected','s:50:\"You do not have permission to edit this JSON page.\";'),('en','messages:mycustomjsprotected','s:56:\"You do not have permission to edit this JavaScript page.\";'),('en','messages:myprivateinfoprotected','s:60:\"You do not have permission to edit your private information.\";'),('en','messages:mypreferencesprotected','s:52:\"You do not have permission to edit your preferences.\";'),('en','messages:ns-specialprotected','s:31:\"Special pages cannot be edited.\";'),('en','messages:titleprotected','s:95:\"This title has been protected from creation by [[User:$1|$1]].\nThe reason given is <em>$2</em>.\";'),('en','messages:filereadonlyerror','s:157:\"Unable to modify the file \"$1\" because the file repository \"$2\" is in read-only mode.\n\nThe system administrator who locked it offered this explanation: \"$3\".\";'),('en','messages:invalidtitle','s:13:\"Invalid title\";'),('en','messages:invalidtitle-knownnamespace','s:47:\"Invalid title with namespace \"$2\" and text \"$3\"\";'),('en','messages:invalidtitle-unknownnamespace','s:60:\"Invalid title with unknown namespace number $1 and text \"$2\"\";'),('en','messages:exception-nologin','s:13:\"Not logged in\";'),('en','messages:exception-nologin-text','s:55:\"Please log in to be able to access this page or action.\";'),('en','messages:exception-nologin-text-manual','s:51:\"Please $1 to be able to access this page or action.\";'),('en','messages:virus-badscanner','s:53:\"Bad configuration: Unknown virus scanner: <em>$1</em>\";'),('en','messages:virus-scanfailed','s:21:\"scan failed (code $1)\";'),('en','messages:virus-unknownscanner','s:18:\"unknown antivirus:\";'),('en','messages:logouttext','s:159:\"<strong>You are now logged out.</strong>\n\nNote that some pages may continue to be displayed as if you were still logged in, until you clear your browser cache.\";'),('en','messages:cannotlogoutnow-title','s:18:\"Cannot log out now\";'),('en','messages:cannotlogoutnow-text','s:42:\"Logging out is not possible when using $1.\";'),('en','messages:welcomeuser','s:12:\"Welcome, $1!\";'),('en','messages:welcomecreation-msg','s:112:\"Your account has been created.\nYou can change your {{SITENAME}} [[Special:Preferences|preferences]] if you wish.\";'),('en','messages:yourname','s:9:\"Username:\";'),('en','messages:userlogin-yourname','s:8:\"Username\";'),('en','messages:userlogin-yourname-ph','s:19:\"Enter your username\";'),('en','messages:createacct-another-username-ph','s:18:\"Enter the username\";'),('en','messages:createacct-helpusername','s:0:\"\";'),('en','messages:yourpassword','s:9:\"Password:\";'),('en','messages:userlogin-yourpassword','s:8:\"Password\";'),('en','messages:userlogin-yourpassword-ph','s:19:\"Enter your password\";'),('en','messages:createacct-yourpassword-ph','s:16:\"Enter a password\";'),('en','messages:yourpasswordagain','s:16:\"Retype password:\";'),('en','messages:createacct-yourpasswordagain','s:16:\"Confirm password\";'),('en','messages:createacct-yourpasswordagain-ph','s:20:\"Enter password again\";'),('en','messages:userlogin-remembermypassword','s:17:\"Keep me logged in\";'),('en','messages:userlogin-signwithsecure','s:21:\"Use secure connection\";'),('en','messages:cannotlogin-title','s:13:\"Cannot log in\";'),('en','messages:cannotlogin-text','s:27:\"Logging in is not possible.\";'),('en','messages:cannotloginnow-title','s:17:\"Cannot log in now\";'),('en','messages:cannotloginnow-text','s:41:\"Logging in is not possible when using $1.\";'),('en','messages:cannotcreateaccount-title','s:22:\"Cannot create accounts\";'),('en','messages:cannotcreateaccount-text','s:52:\"Direct account creation is not enabled on this wiki.\";'),('en','messages:yourdomainname','s:12:\"Your domain:\";'),('en','messages:password-change-forbidden','s:41:\"You cannot change passwords on this wiki.\";'),('en','messages:externaldberror','s:105:\"There was either an authentication database error or you are not allowed to update your external account.\";'),('en','messages:login','s:6:\"Log in\";'),('en','messages:login-security','s:20:\"Verify your identity\";'),('en','messages:nav-login-createaccount','s:23:\"Log in / create account\";'),('en','messages:loginprompt','s:0:\"\";'),('en','messages:logout','s:7:\"Log out\";'),('en','messages:userlogout','s:7:\"Log out\";'),('en','messages:userlogout-summary','s:0:\"\";'),('en','messages:notloggedin','s:13:\"Not logged in\";'),('en','messages:userlogin-noaccount','s:22:\"Don\'t have an account?\";'),('en','messages:userlogin-joinproject','s:17:\"Join {{SITENAME}}\";'),('en','messages:createaccount','s:14:\"Create account\";'),('en','messages:userlogin-resetpassword-link','s:21:\"Forgot your password?\";'),('en','messages:helplogin-url','s:65:\"https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Logging_in\";'),('en','messages:userlogin-helplink2','s:20:\"Help with logging in\";'),('en','messages:userlogin-loggedin','s:92:\"You are already logged in as {{GENDER:$1|$1}}.\nUse the form below to log in as another user.\";'),('en','messages:userlogin-reauth','s:62:\"You must log in again to verify that you are {{GENDER:$1|$1}}.\";'),('en','messages:userlogin-createanother','s:22:\"Create another account\";'),('en','messages:createacct-emailrequired','s:13:\"Email address\";'),('en','messages:createacct-emailoptional','s:24:\"Email address (optional)\";'),('en','messages:createacct-email-ph','s:24:\"Enter your email address\";'),('en','messages:createacct-another-email-ph','s:19:\"Enter email address\";'),('en','messages:createaccountmail','s:74:\"Use a temporary random password and send it to the specified email address\";'),('en','messages:createaccountmail-help','s:79:\"Can be used to create account for another person without learning the password.\";'),('en','messages:createacct-realname','s:20:\"Real name (optional)\";'),('en','messages:createacct-reason','s:6:\"Reason\";'),('en','messages:createacct-reason-ph','s:36:\"Why you are creating another account\";'),('en','messages:createacct-reason-help','s:41:\"Message shown in the account creation log\";'),('en','messages:createacct-imgcaptcha-help','s:0:\"\";'),('en','messages:createacct-submit','s:19:\"Create your account\";'),('en','messages:createacct-another-submit','s:14:\"Create account\";'),('en','messages:createacct-continue-submit','s:25:\"Continue account creation\";'),('en','messages:createacct-another-continue-submit','s:25:\"Continue account creation\";'),('en','messages:createacct-benefit-heading','s:40:\"{{SITENAME}} is made by people like you.\";'),('en','messages:createacct-benefit-icon1','s:10:\"icon-edits\";'),('en','messages:createacct-benefit-head1','s:17:\"{{NUMBEROFEDITS}}\";'),('en','messages:createacct-benefit-body1','s:24:\"{{PLURAL:$1|edit|edits}}\";'),('en','messages:createacct-benefit-icon2','s:10:\"icon-pages\";'),('en','messages:createacct-benefit-head2','s:20:\"{{NUMBEROFARTICLES}}\";'),('en','messages:createacct-benefit-body2','s:24:\"{{PLURAL:$1|page|pages}}\";'),('en','messages:createacct-benefit-icon3','s:17:\"icon-contributors\";'),('en','messages:createacct-benefit-head3','s:23:\"{{NUMBEROFACTIVEUSERS}}\";'),('en','messages:createacct-benefit-body3','s:45:\"recent {{PLURAL:$1|contributor|contributors}}\";'),('en','messages:badretype','s:39:\"The passwords you entered do not match.\";'),('en','messages:usernameinprogress','s:75:\"An account creation for this user name is already in progress.\nPlease wait.\";'),('en','messages:userexists','s:64:\"Username entered already in use.\nPlease choose a different name.\";'),('en','messages:loginerror','s:11:\"Login error\";'),('en','messages:createacct-error','s:22:\"Account creation error\";'),('en','messages:createaccounterror','s:28:\"Could not create account: $1\";'),('en','messages:nocookiesnew','s:195:\"The user account was created, but you are not logged in.\n{{SITENAME}} uses cookies to log in users.\nYou have cookies disabled.\nPlease enable them, then log in with your new username and password.\";'),('en','messages:nocookieslogin','s:103:\"{{SITENAME}} uses cookies to log in users.\nYou have cookies disabled.\nPlease enable them and try again.\";'),('en','messages:nocookiesfornew','s:134:\"The user account was not created, as we could not confirm its source.\nEnsure you have cookies enabled, reload this page and try again.\";'),('en','messages:nocookiesforlogin','s:22:\"{{int:nocookieslogin}}\";'),('en','messages:createacct-loginerror','s:136:\"The account was successfully created but you could not be logged in automatically. Please proceed to [[Special:UserLogin|manual login]].\";'),('en','messages:noname','s:40:\"You have not specified a valid username.\";'),('en','messages:loginsuccesstitle','s:9:\"Logged in\";'),('en','messages:loginsuccess','s:63:\"<strong>You are now logged in to {{SITENAME}} as \"$1\".</strong>\";'),('en','messages:nosuchuser','s:136:\"There is no user by the name \"$1\".\nUsernames are case sensitive.\nCheck your spelling, or [[Special:CreateAccount|create a new account]].\";'),('en','messages:nosuchusershort','s:55:\"There is no user by the name \"$1\".\nCheck your spelling.\";'),('en','messages:nouserspecified','s:31:\"You have to specify a username.\";'),('en','messages:login-userblocked','s:40:\"This user is blocked. Login not allowed.\";'),('en','messages:wrongpassword','s:57:\"Incorrect username or password entered.\nPlease try again.\";'),('en','messages:wrongpasswordempty','s:45:\"Password entered was blank.\nPlease try again.\";'),('en','messages:passwordtooshort','s:67:\"Passwords must be at least {{PLURAL:$1|1 character|$1 characters}}.\";'),('en','messages:passwordtoolong','s:72:\"Passwords cannot be longer than {{PLURAL:$1|1 character|$1 characters}}.\";'),('en','messages:passwordtoopopular','s:99:\"Commonly chosen passwords cannot be used. Please choose a password that is more difficult to guess.\";'),('en','messages:password-name-match','s:51:\"Your password must be different from your username.\";'),('en','messages:password-login-forbidden','s:57:\"The use of this username and password has been forbidden.\";'),('en','messages:mailmypassword','s:14:\"Reset password\";'),('en','messages:passwordremindertitle','s:39:\"New temporary password for {{SITENAME}}\";'),('en','messages:passwordremindertext','s:479:\"Someone (from IP address $1) requested a new\npassword for {{SITENAME}} ($4). A temporary password for user\n\"$2\" has been created and was set to \"$3\". If this was your\nintent, you will need to log in and choose a new password now.\nYour temporary password will expire in {{PLURAL:$5|one day|$5 days}}.\n\nIf someone else made this request, or if you have remembered your password,\nand you no longer wish to change it, you may ignore this message and\ncontinue using your old password.\";'),('en','messages:noemail','s:49:\"There is no email address recorded for user \"$1\".\";'),('en','messages:noemailcreate','s:42:\"You need to provide a valid email address.\";'),('en','messages:passwordsent','s:112:\"A new password has been sent to the email address registered for \"$1\".\nPlease log in again after you receive it.\";'),('en','messages:blocked-mailpassword','s:123:\"Your IP address is blocked from editing. To prevent abuse, it is not allowed to use password recovery from this IP address.\";'),('en','messages:eauthentsent','s:215:\"A confirmation email has been sent to the specified email address.\nBefore any other email is sent to the account, you will have to follow the instructions in the email, to confirm that the account is actually yours.\";'),('en','messages:throttled-mailpassword','s:184:\"A password reset email has already been sent, within the last {{PLURAL:$1|hour|$1 hours}}.\nTo prevent abuse, only one password reset email will be sent per {{PLURAL:$1|hour|$1 hours}}.\";'),('en','messages:signupstart','s:0:\"\";'),('en','messages:signupend','s:0:\"\";'),('en','messages:signupend-https','s:0:\"\";'),('en','messages:mailerror','s:22:\"Error sending mail: $1\";'),('en','messages:acct_creation_throttle_hit','s:249:\"Visitors to this wiki using your IP address have created {{PLURAL:$1|1 account|$1 accounts}} in the last $2, which is the maximum allowed in this time period.\nAs a result, visitors using this IP address cannot create any more accounts at the moment.\";'),('en','messages:emailauthenticated','s:45:\"Your email address was confirmed on $2 at $3.\";'),('en','messages:emailnotauthenticated','s:97:\"Your email address is not yet confirmed.\nNo email will be sent for any of the following features.\";'),('en','messages:noemailprefs','s:72:\"Specify an email address in your preferences for these features to work.\";'),('en','messages:emailconfirmlink','s:26:\"Confirm your email address\";'),('en','messages:invalidemailaddress','s:136:\"The email address cannot be accepted as it appears to have an invalid format.\nPlease enter a well-formatted address or empty that field.\";'),('en','messages:cannotchangeemail','s:55:\"Account email addresses cannot be changed on this wiki.\";')
[DBQuery] my_wiki INSERT /* LCStoreDB::finishWrite */ INTO `l10n_cache` (lc_lang,lc_key,lc_value) VALUES ('en','messages:emaildisabled','s:29:\"This site cannot send emails.\";'),('en','messages:emailsender','s:12:\"{{SITENAME}}\";'),('en','messages:accountcreated','s:15:\"Account created\";'),('en','messages:accountcreatedtext','s:91:\"The user account for [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) has been created.\";'),('en','messages:createaccount-title','s:33:\"Account creation for {{SITENAME}}\";'),('en','messages:createaccount-text','s:218:\"Someone created an account for your email address on {{SITENAME}} ($4) named \"$2\", with password \"$3\".\nYou should log in and change your password now.\n\nYou may ignore this message, if this account was created in error.\";'),('en','messages:login-throttled','s:81:\"You have made too many recent login attempts.\nPlease wait $1 before trying again.\";'),('en','messages:login-abort-generic','s:27:\"Your login failed - Aborted\";'),('en','messages:login-migrated-generic','s:79:\"Your account has been migrated, and your username no longer exist on this wiki.\";'),('en','messages:loginlanguagelabel','s:12:\"Language: $1\";'),('en','messages:loginlanguagelinks','s:153:\"* {{#language:de}}|de\n* {{#language:en}}|en\n* {{#language:eo}}|eo\n* {{#language:fr}}|fr\n* {{#language:es}}|es\n* {{#language:it}}|it\n* {{#language:nl}}|nl\";'),('en','messages:suspicious-userlogout','s:106:\"Your request to log out was denied because it looks like it was sent by a broken browser or caching proxy.\";'),('en','messages:createacct-another-realname-tip','s:117:\"Real name is optional.\nIf you choose to provide it, this will be used for giving the user attribution for their work.\";'),('en','messages:pt-login','s:6:\"Log in\";'),('en','messages:pt-login-button','s:6:\"Log in\";'),('en','messages:pt-login-continue-button','s:14:\"Continue login\";'),('en','messages:pt-createaccount','s:14:\"Create account\";'),('en','messages:pt-userlogout','s:7:\"Log out\";'),('en','messages:pear-mail-error','s:2:\"$1\";'),('en','messages:php-mail-error','s:2:\"$1\";'),('en','messages:php-mail-error-unknown','s:39:\"Unknown error in PHP\'s mail() function.\";'),('en','messages:user-mail-no-addy','s:45:\"Tried to send email without an email address.\";'),('en','messages:user-mail-no-body','s:61:\"Tried to send email with an empty or unreasonably short body.\";'),('en','messages:changepassword','s:15:\"Change password\";'),('en','messages:changepassword-summary','s:0:\"\";'),('en','messages:resetpass_announce','s:50:\"To finish logging in, you must set a new password.\";'),('en','messages:resetpass_text','s:22:\"<!-- Add text here -->\";'),('en','messages:resetpass_header','s:23:\"Change account password\";'),('en','messages:oldpassword','s:13:\"Old password:\";'),('en','messages:newpassword','s:13:\"New password:\";'),('en','messages:retypenew','s:20:\"Retype new password:\";'),('en','messages:resetpass_submit','s:23:\"Set password and log in\";'),('en','messages:changepassword-success','s:31:\"Your password has been changed!\";'),('en','messages:changepassword-throttled','s:81:\"You have made too many recent login attempts.\nPlease wait $1 before trying again.\";'),('en','messages:botpasswords','s:13:\"Bot passwords\";'),('en','messages:botpasswords-summary','s:351:\"<em>Bot passwords</em> allow access to a user account via the API without using the account\'s main login credentials. The user rights available when logged in with a bot password may be restricted.\n\nIf you don\'t know why you might want to do this, you should probably not do it. No one should ever ask you to generate one of these and give it to them.\";'),('en','messages:botpasswords-disabled','s:27:\"Bot passwords are disabled.\";'),('en','messages:botpasswords-no-central-id','s:69:\"To use bot passwords, you must be logged in to a centralized account.\";'),('en','messages:botpasswords-existing','s:22:\"Existing bot passwords\";'),('en','messages:botpasswords-createnew','s:25:\"Create a new bot password\";'),('en','messages:botpasswords-editexisting','s:29:\"Edit an existing bot password\";'),('en','messages:botpasswords-label-needsreset','s:22:\"(password needs reset)\";'),('en','messages:botpasswords-label-appid','s:9:\"Bot name:\";'),('en','messages:botpasswords-label-create','s:6:\"Create\";'),('en','messages:botpasswords-label-update','s:6:\"Update\";'),('en','messages:botpasswords-label-cancel','s:6:\"Cancel\";'),('en','messages:botpasswords-label-delete','s:6:\"Delete\";'),('en','messages:botpasswords-label-resetpassword','s:18:\"Reset the password\";'),('en','messages:botpasswords-label-grants','s:18:\"Applicable grants:\";'),('en','messages:botpasswords-help-grants','s:242:\"Grants allow access to rights already held by your user account. Enabling a grant here does not provide access to any rights that your user account would not otherwise have. See the [[Special:ListGrants|table of grants]] for more information.\";'),('en','messages:botpasswords-label-grants-column','s:7:\"Granted\";'),('en','messages:botpasswords-bad-appid','s:31:\"The bot name \"$1\" is not valid.\";'),('en','messages:botpasswords-insert-failed','s:50:\"Failed to add bot name \"$1\". Was it already added?\";'),('en','messages:botpasswords-update-failed','s:47:\"Failed to update bot name \"$1\". Was it deleted?\";'),('en','messages:botpasswords-created-title','s:20:\"Bot password created\";'),('en','messages:botpasswords-created-body','s:74:\"The bot password for bot name \"$1\" of {{GENDER:$2|user}} \"$2\" was created.\";'),('en','messages:botpasswords-updated-title','s:20:\"Bot password updated\";'),('en','messages:botpasswords-updated-body','s:74:\"The bot password for bot name \"$1\" of {{GENDER:$2|user}} \"$2\" was updated.\";'),('en','messages:botpasswords-deleted-title','s:20:\"Bot password deleted\";'),('en','messages:botpasswords-deleted-body','s:74:\"The bot password for bot name \"$1\" of {{GENDER:$2|user}} \"$2\" was deleted.\";'),('en','messages:botpasswords-newpassword','s:301:\"The new password to log in with <strong>$1</strong> is <strong>$2</strong>. <em>Please record this for future reference.</em> <br> (For old bots which require the login name to be the same as the eventual username, you can also use <strong>$3</strong> as username and <strong>$4</strong> as password.)\";'),('en','messages:botpasswords-no-provider','s:45:\"BotPasswordsSessionProvider is not available.\";'),('en','messages:botpasswords-restriction-failed','s:45:\"Bot password restrictions prevent this login.\";'),('en','messages:botpasswords-invalid-name','s:74:\"The username specified does not contain the bot password separator (\"$1\").\";'),('en','messages:botpasswords-not-exist','s:50:\"User \"$1\" does not have a bot password named \"$2\".\";'),('en','messages:botpasswords-needs-reset','s:76:\"The bot password for bot name \"$2\" of {{GENDER:$1|user}} \"$1\" must be reset.\";'),('en','messages:botpasswords-locked','s:63:\"You cannot login with a bot password as your account is locked.\";'),('en','messages:resetpass_forbidden','s:27:\"Passwords cannot be changed\";'),('en','messages:resetpass_forbidden-reason','s:31:\"Passwords cannot be changed: $1\";'),('en','messages:resetpass-no-info','s:51:\"You must be logged in to access this page directly.\";'),('en','messages:resetpass-submit-loggedin','s:15:\"Change password\";'),('en','messages:resetpass-submit-cancel','s:6:\"Cancel\";'),('en','messages:resetpass-wrong-oldpass','s:120:\"Invalid temporary or current password.\nYou may have already changed your password or requested a new temporary password.\";'),('en','messages:resetpass-recycled','s:73:\"Please reset your password to something other than your current password.\";'),('en','messages:resetpass-temp-emailed','s:100:\"You logged in with a temporary emailed code.\nTo finish logging in, you must set a new password here:\";'),('en','messages:resetpass-temp-password','s:19:\"Temporary password:\";'),('en','messages:resetpass-abort-generic','s:49:\"Password change has been aborted by an extension.\";'),('en','messages:resetpass-expired','s:63:\"Your password has expired. Please set a new password to log in.\";'),('en','messages:resetpass-expired-soft','s:154:\"Your password has expired and needs to be reset. Please choose a new password now, or click \"{{int:authprovider-resetpass-skip-label}}\" to reset it later.\";'),('en','messages:resetpass-validity-soft','s:137:\"Your password is not valid: $1\n\nPlease choose a new password now, or click \"{{int:authprovider-resetpass-skip-label}}\" to reset it later.\";'),('en','messages:passwordreset','s:14:\"Reset password\";'),('en','messages:passwordreset-text-one','s:61:\"Complete this form to receive a temporary password via email.\";'),('en','messages:passwordreset-text-many','s:82:\"{{PLURAL:$1|Fill in one of the fields to receive a temporary password via email.}}\";'),('en','messages:passwordreset-disabled','s:48:\"Password resets have been disabled on this wiki.\";'),('en','messages:passwordreset-emaildisabled','s:47:\"Email features have been disabled on this wiki.\";'),('en','messages:passwordreset-username','s:9:\"Username:\";'),('en','messages:passwordreset-domain','s:7:\"Domain:\";'),('en','messages:passwordreset-email','s:14:\"Email address:\";'),('en','messages:passwordreset-emailtitle','s:31:\"Account details on {{SITENAME}}\";'),('en','messages:passwordreset-emailtext-ip','s:545:\"Someone (probably you, from IP address $1) requested a reset of your\npassword for {{SITENAME}} ($4). The following user {{PLURAL:$3|account is|accounts are}}\nassociated with this email address:\n\n$2\n\n{{PLURAL:$3|This temporary password|These temporary passwords}} will expire in {{PLURAL:$5|one day|$5 days}}.\nYou should log in and choose a new password now. If someone else made this\nrequest, or if you have remembered your original password, and you no longer\nwish to change it, you may ignore this message and continue using your old\npassword.\";'),('en','messages:passwordreset-emailtext-user','s:526:\"User $1 on {{SITENAME}} requested a reset of your password for {{SITENAME}}\n($4). The following user {{PLURAL:$3|account is|accounts are}} associated with this email address:\n\n$2\n\n{{PLURAL:$3|This temporary password|These temporary passwords}} will expire in {{PLURAL:$5|one day|$5 days}}.\nYou should log in and choose a new password now. If someone else made this\nrequest, or if you have remembered your original password, and you no longer\nwish to change it, you may ignore this message and continue using your old\npassword.\";'),('en','messages:passwordreset-emailelement','s:36:\"Username:\n$1\n\nTemporary password:\n$2\";'),('en','messages:passwordreset-emailsentemail','s:96:\"If this email address is associated with your account, then a password reset email will be sent.\";'),('en','messages:passwordreset-emailsentusername','s:101:\"If there is an email address associated with this username, then a password reset email will be sent.\";'),('en','messages:passwordreset-nocaller','s:25:\"A caller must be provided\";'),('en','messages:passwordreset-nosuchcaller','s:25:\"Caller does not exist: $1\";'),('en','messages:passwordreset-ignored','s:69:\"The password reset was not handled. Maybe no provider was configured?\";'),('en','messages:passwordreset-invalidemail','s:21:\"Invalid email address\";'),('en','messages:passwordreset-nodata','s:52:\"Neither a username nor an email address was supplied\";'),('en','messages:changeemail','s:30:\"Change or remove email address\";'),('en','messages:changeemail-summary','s:0:\"\";'),('en','messages:changeemail-header','s:192:\"Complete this form to change your email address. If you would like to remove the association of any email address from your account, leave the new email address blank when submitting the form.\";'),('en','messages:changeemail-no-info','s:51:\"You must be logged in to access this page directly.\";'),('en','messages:changeemail-oldemail','s:22:\"Current email address:\";'),('en','messages:changeemail-newemail','s:18:\"New email address:\";'),('en','messages:changeemail-newemail-help','s:200:\"This field should be left blank if you want to remove your email address. You will not be able to reset a forgotten password and will not receive emails from this wiki if the email address is removed.\";'),('en','messages:changeemail-none','s:6:\"(none)\";'),('en','messages:changeemail-password','s:27:\"Your {{SITENAME}} password:\";'),('en','messages:changeemail-submit','s:12:\"Change email\";'),('en','messages:changeemail-throttled','s:74:\"You have made too many login attempts.\nPlease wait $1 before trying again.\";'),('en','messages:changeemail-nochange','s:43:\"Please enter a different new email address.\";'),('en','messages:resettokens','s:12:\"Reset tokens\";'),('en','messages:resettokens-summary','s:0:\"\";'),('en','messages:resettokens-text','s:202:\"You can reset tokens which allow access to certain private data associated with your account here.\n\nYou should do it if you accidentally shared them with someone or if your account has been compromised.\";'),('en','messages:resettokens-no-tokens','s:29:\"There are no tokens to reset.\";'),('en','messages:resettokens-tokens','s:7:\"Tokens:\";'),('en','messages:resettokens-token-label','s:22:\"$1 (current value: $2)\";'),('en','messages:resettokens-watchlist-token','s:93:\"Token for the web feed (Atom/RSS) of [[Special:Watchlist|changes to pages on your watchlist]]\";'),('en','messages:resettokens-done','s:13:\"Tokens reset.\";'),('en','messages:resettokens-resetbutton','s:21:\"Reset selected tokens\";'),('en','messages:bold_sample','s:9:\"Bold text\";'),('en','messages:bold_tip','s:9:\"Bold text\";'),('en','messages:italic_sample','s:11:\"Italic text\";'),('en','messages:italic_tip','s:11:\"Italic text\";'),('en','messages:link_sample','s:10:\"Link title\";'),('en','messages:link_tip','s:13:\"Internal link\";'),('en','messages:extlink_sample','s:33:\"http://www.example.com link title\";'),('en','messages:extlink_tip','s:39:\"External link (remember http:// prefix)\";'),('en','messages:headline_sample','s:13:\"Headline text\";'),('en','messages:headline_tip','s:16:\"Level 2 headline\";'),('en','messages:nowiki_sample','s:30:\"Insert non-formatted text here\";'),('en','messages:nowiki_tip','s:22:\"Ignore wiki formatting\";'),('en','messages:image_sample','s:11:\"Example.jpg\";'),('en','messages:image_tip','s:13:\"Embedded file\";'),('en','messages:media_sample','s:11:\"Example.ogg\";'),('en','messages:media_tip','s:9:\"File link\";'),('en','messages:sig-text','s:4:\"--$1\";'),('en','messages:sig_tip','s:29:\"Your signature with timestamp\";'),('en','messages:hr_tip','s:31:\"Horizontal line (use sparingly)\";'),('en','messages:summary','s:8:\"Summary:\";'),('en','messages:subject','s:8:\"Subject:\";'),('en','messages:minoredit','s:20:\"This is a minor edit\";'),('en','messages:watchthis','s:15:\"Watch this page\";'),('en','messages:savearticle','s:9:\"Save page\";'),('en','messages:savechanges','s:12:\"Save changes\";'),('en','messages:publishpage','s:12:\"Publish page\";'),('en','messages:publishchanges','s:15:\"Publish changes\";'),('en','messages:savearticle-start','s:12:\"Save page…\";'),('en','messages:savechanges-start','s:15:\"Save changes…\";'),('en','messages:publishpage-start','s:15:\"Publish page…\";'),('en','messages:publishchanges-start','s:18:\"Publish changes…\";'),('en','messages:preview','s:7:\"Preview\";'),('en','messages:showpreview','s:12:\"Show preview\";'),('en','messages:showdiff','s:12:\"Show changes\";'),('en','messages:blankarticle','s:132:\"<strong>Warning:</strong> The page you are creating is blank.\nIf you click \"$1\" again, the page will be created without any content.\";'),('en','messages:anoneditwarning','s:267:\"<strong>Warning:</strong> You are not logged in. Your IP address will be publicly visible if you make any edits. If you <strong>[$1 log in]</strong> or <strong>[$2 create an account]</strong>, your edits will be attributed to your username, along with other benefits.\";'),('en','messages:anonpreviewwarning','s:95:\"<em>You are not logged in. Saving will record your IP address in this page\'s edit history.</em>\";'),('en','messages:missingsummary','s:127:\"<strong>Reminder:</strong> You have not provided an edit summary.\nIf you click \"$1\" again, your edit will be saved without one.\";'),('en','messages:selfredirect','s:224:\"<strong>Warning:</strong> You are redirecting this page to itself.\nYou may have specified the wrong target for the redirect, or you may be editing the wrong page.\nIf you click \"$1\" again, the redirect will be created anyway.\";'),('en','messages:missingcommenttext','s:23:\"Please enter a comment.\";'),('en','messages:missingcommentheader','s:138:\"<strong>Reminder:</strong> You have not provided a subject for this comment.\nIf you click \"$1\" again, your edit will be saved without one.\";'),('en','messages:summary-preview','s:24:\"Preview of edit summary:\";'),('en','messages:subject-preview','s:19:\"Preview of subject:\";'),('en','messages:previewerrortext','s:59:\"An error occurred while attempting to preview your changes.\";'),('en','messages:blockedtitle','s:15:\"User is blocked\";'),('en','messages:blockedtext','s:592:\"<strong>Your username or IP address has been blocked.</strong>\n\nThe block was made by $1.\nThe reason given is <em>$2</em>.\n\n* Start of block: $8\n* Expiration of block: $6\n* Intended blockee: $7\n\nYou can contact $1 or another [[{{MediaWiki:Grouppage-sysop}}|administrator]] to discuss the block.\nYou cannot use the \"email this user\" feature unless a valid email address is specified in your [[Special:Preferences|account preferences]] and you have not been blocked from using it.\nYour current IP address is $3, and the block ID is #$5.\nPlease include all above details in any queries you make.\";'),('en','messages:autoblockedtext','s:638:\"Your IP address has been automatically blocked because it was used by another user, who was blocked by $1.\nThe reason given is:\n\n:<em>$2</em>\n\n* Start of block: $8\n* Expiration of block: $6\n* Intended blockee: $7\n\nYou may contact $1 or one of the other [[{{MediaWiki:Grouppage-sysop}}|administrators]] to discuss the block.\n\nNote that you may not use the \"email this user\" feature unless you have a valid email address registered in your [[Special:Preferences|user preferences]] and you have not been blocked from using it.\n\nYour current IP address is $3, and the block ID is #$5.\nPlease include all above details in any queries you make.\";'),('en','messages:systemblockedtext','s:268:\"Your username or IP address has been automatically blocked by MediaWiki.\nThe reason given is:\n\n:<em>$2</em>\n\n* Start of block: $8\n* Expiration of block: $6\n* Intended blockee: $7\n\nYour current IP address is $3.\nPlease include all above details in any queries you make.\";'),('en','messages:blockednoreason','s:15:\"no reason given\";'),('en','messages:whitelistedittext','s:24:\"Please $1 to edit pages.\";'),('en','messages:confirmedittext','s:155:\"You must confirm your email address before editing pages.\nPlease set and validate your email address through your [[Special:Preferences|user preferences]].\";'),('en','messages:nosuchsectiontitle','s:19:\"Cannot find section\";'),('en','messages:nosuchsectiontext','s:115:\"You tried to edit a section that does not exist.\nIt may have been moved or deleted while you were viewing the page.\";'),('en','messages:loginreqtitle','s:14:\"Login required\";'),('en','messages:loginreqlink','s:6:\"log in\";'),('en','messages:loginreqpagetext','s:30:\"Please $1 to view other pages.\";'),('en','messages:accmailtitle','s:13:\"Password sent\";'),('en','messages:accmailtext','s:173:\"A randomly generated password for [[User talk:$1|$1]] has been sent to $2. It can be changed on the <em>[[Special:ChangePassword|change password]]</em> page upon logging in.\";'),('en','messages:newarticle','s:5:\"(New)\";'),('en','messages:newarticletext','s:228:\"You have followed a link to a page that does not exist yet.\nTo create the page, start typing in the box below (see the [$1 help page] for more info).\nIf you are here by mistake, click your browser\'s <strong>back</strong> button.\";'),('en','messages:newarticletextanon','s:25:\"{{int:newarticletext|$1}}\";'),('en','messages:talkpagetext','s:31:\"<!-- MediaWiki:talkpagetext -->\";'),('en','messages:anontalkpagetext','s:472:\"----\n<em>This is the discussion page for an anonymous user who has not created an account yet, or who does not use it.</em>\nWe therefore have to use the numerical IP address to identify him/her.\nSuch an IP address can be shared by several users.\nIf you are an anonymous user and feel that irrelevant comments have been directed at you, please [[Special:CreateAccount|create an account]] or [[Special:UserLogin|log in]] to avoid future confusion with other anonymous users.\";'),('en','messages:noarticletext','s:298:\"There is currently no text in this page.\nYou can [[Special:Search/{{PAGENAME}}|search for this page title]] in other pages,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs],\nor [{{fullurl:{{FULLPAGENAME}}|action=edit}} create this page]</span>.\";'),('en','messages:noarticletext-nopermission','s:289:\"There is currently no text in this page.\nYou can [[Special:Search/{{PAGENAME}}|search for this page title]] in other pages, or <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs]</span>, but you do not have permission to create this page.\";'),('en','messages:noarticletextanon','s:21:\"{{int:noarticletext}}\";'),('en','messages:missing-revision','s:267:\"The revision #$1 of the page named \"{{FULLPAGENAME}}\" does not exist.\n\nThis is usually caused by following an outdated history link to a page that has been deleted.\nDetails can be found in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].\";'),('en','messages:userpage-userdoesnotexist','s:87:\"User account \"$1\" is not registered.\nPlease check if you want to create/edit this page.\";'),('en','messages:userpage-userdoesnotexist-view','s:36:\"User account \"$1\" is not registered.\";'),('en','messages:blocked-notice-logextract','s:91:\"This user is currently blocked.\nThe latest block log entry is provided below for reference:\";'),('en','messages:clearyourcache','s:671:\"<strong>Note:</strong> After saving, you may have to bypass your browser\'s cache to see the changes.\n* <strong>Firefox / Safari:</strong> Hold <em>Shift</em> while clicking <em>Reload</em>, or press either <em>Ctrl-F5</em> or <em>Ctrl-R</em> (<em>⌘-R</em> on a Mac)\n* <strong>Google Chrome:</strong> Press <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> on a Mac)\n* <strong>Internet Explorer:</strong> Hold <em>Ctrl</em> while clicking <em>Refresh</em>, or press <em>Ctrl-F5</em>\n* <strong>Opera:</strong> Go to <em>Menu → Settings</em> (<em>Opera → Preferences</em> on a Mac) and then to <em>Privacy & security → Clear browsing data → Cached images and files</em>.\";'),('en','messages:usercssyoucanpreview','s:94:\"<strong>Tip:</strong> Use the \"{{int:showpreview}}\" button to test your new CSS before saving.\";'),('en','messages:userjsonyoucanpreview','s:95:\"<strong>Tip:</strong> Use the \"{{int:showpreview}}\" button to test your new JSON before saving.\";'),('en','messages:userjsyoucanpreview','s:101:\"<strong>Tip:</strong> Use the \"{{int:showpreview}}\" button to test your new JavaScript before saving.\";'),('en','messages:usercsspreview','s:96:\"<strong>Remember that you are only previewing your user CSS.\nIt has not yet been saved!</strong>\";'),('en','messages:userjsonpreview','s:112:\"<strong>Remember that you are only testing/previewing your user JSON config.\nIt has not yet been saved!</strong>\";'),('en','messages:userjspreview','s:111:\"<strong>Remember that you are only testing/previewing your user JavaScript.\nIt has not yet been saved!</strong>\";'),('en','messages:sitecsspreview','s:91:\"<strong>Remember that you are only previewing this CSS.\nIt has not yet been saved!</strong>\";'),('en','messages:sitejsonpreview','s:99:\"<strong>Remember that you are only previewing this JSON config.\nIt has not yet been saved!</strong>\";'),('en','messages:sitejspreview','s:103:\"<strong>Remember that you are only previewing this JavaScript code.\nIt has not yet been saved!</strong>\";'),('en','messages:userinvalidconfigtitle','s:179:\"<strong>Warning:</strong> There is no skin \"$1\".\nCustom .css, .json, and .js pages use a lowercase title, e.g. {{ns:user}}:Foo/vector.css as opposed to {{ns:user}}:Foo/Vector.css.\";'),('en','messages:updated','s:9:\"(Updated)\";'),('en','messages:note','s:22:\"<strong>Note:</strong>\";'),('en','messages:previewnote','s:92:\"<strong>Remember that this is only a preview.</strong>\nYour changes have not yet been saved!\";'),('en','messages:continue-editing','s:18:\"Go to editing area\";'),('en','messages:previewconflict','s:102:\"This preview reflects the text in the upper text editing area as it will appear if you choose to save.\";'),('en','messages:session_fail_preview','s:321:\"Sorry! We could not process your edit due to a loss of session data.\n\nYou might have been logged out. <strong>Please verify that you\'re still logged in and try again</strong>.\nIf it still does not work, try [[Special:UserLogout|logging out]] and logging back in, and check that your browser allows cookies from this site.\";'),('en','messages:session_fail_preview_html','s:407:\"Sorry! We could not process your edit due to a loss of session data.\n\n<em>Because {{SITENAME}} has raw HTML enabled, the preview is hidden as a precaution against JavaScript attacks.</em>\n\n<strong>If this is a legitimate edit attempt, please try again.</strong>\nIf it still does not work, try [[Special:UserLogout|logging out]] and logging back in, and check that your browser allows cookies from this site.\";'),('en','messages:token_suffix_mismatch','s:270:\"<strong>Your edit has been rejected because your client mangled the punctuation characters in the edit token.</strong>\nThe edit has been rejected to prevent corruption of the page text.\nThis sometimes happens when you are using a buggy web-based anonymous proxy service.\";'),('en','messages:edit_form_incomplete','s:125:\"<strong>Some parts of the edit form did not reach the server; double-check that your edits are intact and try again.</strong>\";'),('en','messages:editing','s:10:\"Editing $1\";'),('en','messages:creating','s:11:\"Creating $1\";'),('en','messages:editingsection','s:20:\"Editing $1 (section)\";'),('en','messages:editingcomment','s:24:\"Editing $1 (new section)\";'),('en','messages:editconflict','s:17:\"Edit conflict: $1\";'),('en','messages:editnotice-notext','s:1:\"-\";'),('en','messages:explainconflict','s:327:\"Someone else has changed this page since you started editing it.\nThe upper text area contains the page text as it currently exists.\nYour changes are shown in the lower text area.\nYou will have to merge your changes into the existing text.\n<strong>Only</strong> the text in the upper text area will be saved when you press \"$1\".\";'),('en','messages:yourtext','s:9:\"Your text\";'),('en','messages:storedversion','s:15:\"Stored revision\";'),('en','messages:editingold','s:146:\"<strong>Warning: You are editing an out-of-date revision of this page.</strong>\nIf you save it, any changes made since this revision will be lost.\";'),('en','messages:unicode-support-fail','s:112:\"It appears that your browser does not support Unicode. It is required to edit pages, so your edit was not saved.\";'),('en','messages:yourdiff','s:11:\"Differences\";'),('en','messages:copyrightwarning','s:417:\"Please note that all contributions to {{SITENAME}} are considered to be released under the $2 (see $1 for details).\nIf you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.<br />\nYou are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.\n<strong>Do not submit copyrighted work without permission!</strong>\";'),('en','messages:copyrightwarning2','s:405:\"Please note that all contributions to {{SITENAME}} may be edited, altered, or removed by other contributors.\nIf you do not want your writing to be edited mercilessly, then do not submit it here.<br />\nYou are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see $1 for details).\n<strong>Do not submit copyrighted work without permission!</strong>\";'),('en','messages:editpage-head-copy-warn','s:1:\"-\";'),('en','messages:editpage-tos-summary','s:1:\"-\";'),('en','messages:editpage-cannot-use-custom-model','s:49:\"The content model of this page cannot be changed.\";'),('en','messages:longpage-hint','s:1:\"-\";'),('en','messages:longpageerror','s:197:\"<strong>Error: The text you have submitted is {{PLURAL:$1|one kilobyte|$1 kilobytes}} long, which is longer than the maximum of {{PLURAL:$2|one kilobyte|$2 kilobytes}}.</strong>\nIt cannot be saved.\";'),('en','messages:readonlywarning','s:275:\"<strong>Warning: The database has been locked for maintenance, so you will not be able to save your edits right now.</strong>\nYou may wish to copy and paste your text into a text file and save it for later.\n\nThe system administrator who locked it offered this explanation: $1\";'),('en','messages:protectedpagewarning','s:170:\"<strong>Warning: This page has been protected so that only users with administrator privileges can edit it.</strong>\nThe latest log entry is provided below for reference:\";'),('en','messages:semiprotectedpagewarning','s:151:\"<strong>Note:</strong> This page has been protected so that only autoconfirmed users can edit it.\nThe latest log entry is provided below for reference:\";'),('en','messages:cascadeprotectedwarning','s:221:\"<strong>Warning:</strong> This page has been protected so that only users with [[Special:ListGroupRights|specific rights]] can edit it because it is transcluded in the following cascade-protected {{PLURAL:$1|page|pages}}:\";'),('en','messages:titleprotectedwarning','s:185:\"<strong>Warning: This page has been protected so that [[Special:ListGroupRights|specific rights]] are needed to create it.</strong>\nThe latest log entry is provided below for reference:\";'),('en','messages:templatesused','s:51:\"{{PLURAL:$1|Template|Templates}} used on this page:\";'),('en','messages:templatesusedpreview','s:54:\"{{PLURAL:$1|Template|Templates}} used in this preview:\";'),('en','messages:templatesusedsection','s:54:\"{{PLURAL:$1|Template|Templates}} used in this section:\";'),('en','messages:template-protected','s:11:\"(protected)\";'),('en','messages:template-semiprotected','s:16:\"(semi-protected)\";'),('en','messages:hiddencategories','s:78:\"This page is a member of {{PLURAL:$1|1 hidden category|$1 hidden categories}}:\";'),('en','messages:edittools','s:61:\"<!-- Text here will be shown below edit and upload forms. -->\";'),('en','messages:edittools-upload','s:1:\"-\";'),('en','messages:nocreatetext','s:157:\"{{SITENAME}} has restricted the ability to create new pages.\nYou can go back and edit an existing page, or [[Special:UserLogin|log in or create an account]].\";'),('en','messages:nocreate-loggedin','s:47:\"You do not have permission to create new pages.\";'),('en','messages:sectioneditnotsupported-title','s:29:\"Section editing not supported\";'),('en','messages:sectioneditnotsupported-text','s:46:\"Section editing is not supported in this page.\";'),('en','messages:permissionserrors','s:16:\"Permission error\";'),('en','messages:permissionserrorstext','s:86:\"You do not have permission to do that, for the following {{PLURAL:$1|reason|reasons}}:\";'),('en','messages:permissionserrorstext-withaction','s:81:\"You do not have permission to $2, for the following {{PLURAL:$1|reason|reasons}}:\";'),('en','messages:contentmodelediterror','s:149:\"You cannot edit this revision because its content model is <code>$1</code>, which differs from the current content model of the page <code>$2</code>.\";'),('en','messages:recreate-moveddeleted-warn','s:233:\"<strong>Warning: You are recreating a page that was previously deleted.</strong>\n\nYou should consider whether it is appropriate to continue editing this page.\nThe deletion and move log for this page are provided here for convenience:\";'),('en','messages:moveddeleted-notice','s:113:\"This page has been deleted.\nThe deletion, protection, and move log for the page are provided below for reference.\";'),('en','messages:moveddeleted-notice-recent','s:151:\"Sorry, this page was recently deleted (within the last 24 hours).\nThe deletion, protection, and move log for the page are provided below for reference.\";'),('en','messages:log-fulllog','s:13:\"View full log\";'),('en','messages:edit-hook-aborted','s:45:\"Edit aborted by hook.\nIt gave no explanation.\";'),('en','messages:edit-gone-missing','s:59:\"Could not update the page.\nIt appears to have been deleted.\";'),('en','messages:edit-conflict','s:14:\"Edit conflict.\";'),('en','messages:edit-no-change','s:61:\"Your edit was ignored because no change was made to the text.\";'),('en','messages:postedit-confirmation-created','s:26:\"The page has been created.\";'),('en','messages:postedit-confirmation-restored','s:27:\"The page has been restored.\";'),('en','messages:postedit-confirmation-saved','s:20:\"Your edit was saved.\";'),('en','messages:postedit-confirmation-published','s:24:\"Your edit was published.\";'),('en','messages:edit-already-exists','s:47:\"Could not create a new page.\nIt already exists.\";'),('en','messages:addsection-preload','s:0:\"\";'),('en','messages:addsection-editintro','s:0:\"\";'),('en','messages:defaultmessagetext','s:20:\"Default message text\";'),('en','messages:content-failed-to-parse','s:43:\"Failed to parse $2 content for $1 model: $3\";'),('en','messages:invalid-content-data','s:20:\"Invalid content data\";'),('en','messages:content-not-allowed-here','s:42:\"\"$1\" content is not allowed on page [[$2]]\";'),('en','messages:editwarning-warning','s:177:\"Leaving this page may cause you to lose any changes you have made.\nIf you are logged in, you can disable this warning in the \"{{int:prefs-editing}}\" section of your preferences.\";'),('en','messages:editpage-invalidcontentmodel-title','s:27:\"Content model not supported\";'),('en','messages:editpage-invalidcontentmodel-text','s:40:\"The content model \"$1\" is not supported.\";'),('en','messages:editpage-notsupportedcontentformat-title','s:28:\"Content format not supported\";'),('en','messages:editpage-notsupportedcontentformat-text','s:63:\"The content format $1 is not supported by the content model $2.\";'),('en','messages:content-model-wikitext','s:8:\"wikitext\";'),('en','messages:content-model-text','s:10:\"plain text\";'),('en','messages:content-model-javascript','s:10:\"JavaScript\";'),('en','messages:content-model-css','s:3:\"CSS\";'),('en','messages:content-model-json','s:4:\"JSON\";'),('en','messages:content-json-empty-object','s:12:\"Empty object\";'),('en','messages:content-json-empty-array','s:11:\"Empty array\";'),('en','messages:deprecated-self-close-category','s:41:\"Pages using invalid self-closed HTML tags\";'),('en','messages:deprecated-self-close-category-desc','s:232:\"The page contains invalid self-closed HTML tags, such as <code>&lt;b/></code> or <code>&lt;span/></code>. The behavior of these will change soon to be consistent with the HTML5 specification, so their use in wikitext is deprecated.\";'),('en','messages:duplicate-args-warning','s:144:\"<strong>Warning:</strong> [[:$1]] is calling [[:$2]] with more than one value for the \"$3\" parameter. Only the last value provided will be used.\";'),('en','messages:duplicate-args-category','s:49:\"Pages using duplicate arguments in template calls\";'),('en','messages:duplicate-args-category-desc','s:176:\"The page contains template calls that use duplicates of arguments, such as <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> or <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.\";'),('en','messages:expensive-parserfunction-warning','s:194:\"<strong>Warning:</strong> This page contains too many expensive parser function calls.\n\nIt should have less than $2 {{PLURAL:$2|call|calls}}, there {{PLURAL:$1|is now $1 call|are now $1 calls}}.\";'),('en','messages:expensive-parserfunction-category','s:51:\"Pages with too many expensive parser function calls\";'),('en','messages:post-expand-template-inclusion-warning','s:98:\"<strong>Warning:</strong> Template include size is too large.\nSome templates will not be included.\";'),('en','messages:post-expand-template-inclusion-category','s:45:\"Pages where template include size is exceeded\";'),('en','messages:post-expand-template-argument-warning','s:147:\"<strong>Warning:</strong> This page contains at least one template argument that has a too large expansion size.\nThese arguments have been omitted.\";'),('en','messages:post-expand-template-argument-category','s:43:\"Pages containing omitted template arguments\";'),('en','messages:parser-template-loop-warning','s:30:\"Template loop detected: [[$1]]\";'),('en','messages:template-loop-category','s:25:\"Pages with template loops\";'),('en','messages:template-loop-category-desc','s:81:\"The page contains a template loop, ie. a template which calls itself recursively.\";'),('en','messages:template-loop-warning','s:108:\"<strong>Warning:</strong> This page calls [[:$1]] which causes a template loop (an infinite recursive call).\";'),('en','messages:parser-template-recursion-depth-warning','s:44:\"Template recursion depth limit exceeded ($1)\";'),('en','messages:language-converter-depth-warning','s:44:\"Language converter depth limit exceeded ($1)\";'),('en','messages:node-count-exceeded-category','s:34:\"Pages where node count is exceeded\";'),('en','messages:node-count-exceeded-category-desc','s:40:\"The page exceeds the maximum node count.\";'),('en','messages:node-count-exceeded-warning','s:28:\"Page exceeded the node count\";'),('en','messages:expansion-depth-exceeded-category','s:39:\"Pages where expansion depth is exceeded\";'),('en','messages:expansion-depth-exceeded-category-desc','s:45:\"The page exceeds the maximum expansion depth.\";'),('en','messages:expansion-depth-exceeded-warning','s:33:\"Page exceeded the expansion depth\";'),('en','messages:parser-unstrip-loop-warning','s:21:\"Unstrip loop detected\";'),('en','messages:unstrip-depth-warning','s:33:\"Unstrip depth limit exceeded ($1)\";'),('en','messages:unstrip-depth-category','s:47:\"Pages where the unstrip depth limit is exceeded\";'),('en','messages:unstrip-size-warning','s:32:\"Unstrip size limit exceeded ($1)\";'),('en','messages:unstrip-size-category','s:46:\"Pages where the unstrip size limit is exceeded\";'),('en','messages:converter-manual-rule-error','s:49:\"Error detected in manual language conversion rule\";'),('en','messages:undo-success','s:161:\"The edit can be undone.\nPlease check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.\";'),('en','messages:undo-failure','s:67:\"The edit could not be undone due to conflicting intermediate edits.\";'),('en','messages:undo-norev','s:70:\"The edit could not be undone because it does not exist or was deleted.\";'),('en','messages:undo-nochange','s:45:\"The edit appears to have already been undone.\";'),('en','messages:undo-summary','s:75:\"Undo revision $1 by [[Special:Contributions/$2|$2]] ([[User talk:$2|talk]])\";'),('en','messages:undo-summary-username-hidden','s:33:\"Undo revision $1 by a hidden user\";'),('en','messages:cantcreateaccount-text','s:134:\"Account creation from this IP address (<strong>$1</strong>) has been blocked by [[User:$3|$3]].\n\nThe reason given by $3 is <em>$2</em>\";'),('en','messages:cantcreateaccount-range-text','s:197:\"Account creation from IP addresses in the range <strong>$1</strong>, which includes your IP address (<strong>$4</strong>), has been blocked by [[User:$3|$3]].\n\nThe reason given by $3 is <em>$2</em>\";'),('en','messages:createaccount-hook-aborted','s:2:\"$1\";'),('en','messages:viewpagelogs','s:23:\"View logs for this page\";'),('en','messages:nohistory','s:39:\"There is no edit history for this page.\";'),('en','messages:currentrev','s:15:\"Latest revision\";'),('en','messages:currentrev-asof','s:24:\"Latest revision as of $1\";'),('en','messages:revisionasof','s:17:\"Revision as of $1\";'),('en','messages:revision-info','s:39:\"Revision as of $1 by {{GENDER:$6|$2}}$7\";'),('en','messages:revision-info-current','s:1:\"-\";'),('en','messages:revision-nav','s:65:\"($1) $2{{int:pipe-separator}}$3 ($4){{int:pipe-separator}}$5 ($6)\";'),('en','messages:previousrevision','s:18:\"← Older revision\";'),('en','messages:nextrevision','s:18:\"Newer revision →\";'),('en','messages:currentrevisionlink','s:15:\"Latest revision\";'),('en','messages:cur','s:3:\"cur\";'),('en','messages:next','s:4:\"next\";'),('en','messages:last','s:4:\"prev\";'),('en','messages:page_first','s:5:\"first\";'),('en','messages:page_last','s:4:\"last\";'),('en','messages:histlegend','s:312:\"Diff selection: Mark the radio boxes of the revisions to compare and hit enter or the button at the bottom.<br />\nLegend: <strong>({{int:cur}})</strong> = difference with latest revision, <strong>({{int:last}})</strong> = difference with preceding revision, <strong>{{int:minoreditletter}}</strong> = minor edit.\";'),('en','messages:history-fieldset-title','s:20:\"Search for revisions\";'),('en','messages:history-show-deleted','s:21:\"Revision deleted only\";'),('en','messages:history_copyright','s:1:\"-\";'),('en','messages:histfirst','s:6:\"oldest\";'),('en','messages:histlast','s:6:\"newest\";'),('en','messages:historysize','s:31:\"({{PLURAL:$1|1 byte|$1 bytes}})\";'),('en','messages:historyempty','s:7:\"(empty)\";'),('en','messages:history-feed-title','s:16:\"Revision history\";'),('en','messages:history-feed-description','s:42:\"Revision history for this page on the wiki\";'),('en','messages:history-feed-item-nocomment','s:8:\"$1 at $2\";'),('en','messages:history-feed-empty','s:155:\"The requested page does not exist.\nIt may have been deleted from the wiki, or renamed.\nTry [[Special:Search|searching on the wiki]] for relevant new pages.\";'),('en','messages:history-edit-tags','s:31:\"Edit tags of selected revisions\";'),('en','messages:rev-deleted-comment','s:22:\"(edit summary removed)\";'),('en','messages:rev-deleted-user','s:18:\"(username removed)\";'),('en','messages:rev-deleted-event','s:21:\"(log details removed)\";'),('en','messages:rev-deleted-user-contribs','s:65:\"[username or IP address removed - edit hidden from contributions]\";'),('en','messages:rev-deleted-text-permission','s:156:\"This page revision has been <strong>deleted</strong>.\nDetails can be found in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].\";'),('en','messages:rev-suppressed-text-permission','s:164:\"This page revision has been <strong>suppressed</strong>.\nDetails can be found in the [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} suppression log].\";'),('en','messages:rev-deleted-text-unhide','s:218:\"This page revision has been <strong>deleted</strong>.\nDetails can be found in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].\nYou can still [$1 view this revision] if you wish to proceed.\";'),('en','messages:rev-suppressed-text-unhide','s:226:\"This page revision has been <strong>suppressed</strong>.\nDetails can be found in the [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} suppression log].\nYou can still [$1 view this revision] if you wish to proceed.\";'),('en','messages:rev-deleted-text-view','s:173:\"This page revision has been <strong>deleted</strong>.\nYou can view it; details can be found in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].\";'),('en','messages:rev-suppressed-text-view','s:181:\"This page revision has been <strong>suppressed</strong>.\nYou can view it; details can be found in the [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} suppression log].\";'),('en','messages:rev-deleted-no-diff','s:192:\"You cannot view this diff because one of the revisions has been <strong>deleted</strong>.\nDetails can be found in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].\";'),('en','messages:rev-suppressed-no-diff','s:89:\"You cannot view this diff because one of the revisions has been <strong>deleted</strong>.\";'),('en','messages:rev-deleted-unhide-diff','s:229:\"One of the revisions of this diff has been <strong>deleted</strong>.\nDetails can be found in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].\nYou can still [$1 view this diff] if you wish to proceed.\";'),('en','messages:rev-suppressed-unhide-diff','s:237:\"One of the revisions of this diff has been <strong>suppressed</strong>.\nDetails can be found in the [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} suppression log].\nYou can still [$1 view this diff] if you wish to proceed.\";'),('en','messages:rev-deleted-diff-view','s:195:\"One of the revisions of this diff has been <strong>deleted</strong>.\nYou can view this diff; details can be found in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].\";'),('en','messages:rev-suppressed-diff-view','s:203:\"One of the revisions of this diff has been <strong>suppressed</strong>.\nYou can view this diff; details can be found in the [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} suppression log].\";'),('en','messages:rev-delundel','s:17:\"change visibility\";'),('en','messages:rev-showdeleted','s:4:\"show\";'),('en','messages:revisiondelete','s:25:\"Delete/undelete revisions\";'),('en','messages:revdelete-nooldid-title','s:23:\"Invalid target revision\";'),('en','messages:revdelete-nooldid-text','s:178:\"You have either not specified any target revision on which to perform this function, or the specified revision does not exist, or you are attempting to hide the current revision.\";'),('en','messages:revdelete-no-file','s:34:\"The file specified does not exist.\";'),('en','messages:revdelete-show-file-confirm','s:97:\"Are you sure you want to view a deleted revision of the file \"<nowiki>$1</nowiki>\" from $2 at $3?\";'),('en','messages:revdelete-show-file-submit','s:3:\"Yes\";'),('en','messages:revdelete-selected-text','s:62:\"{{PLURAL:$1|Selected revision|Selected revisions}} of [[:$2]]:\";'),('en','messages:revdelete-selected-file','s:70:\"{{PLURAL:$1|Selected file version|Selected file versions}} of [[:$2]]:\";'),('en','messages:logdelete-selected','s:53:\"{{PLURAL:$1|Selected log event|Selected log events}}:\";'),('en','messages:revdelete-text-text','s:119:\"Deleted revisions will still appear in the page history, but parts of their content will be inaccessible to the public.\";'),('en','messages:revdelete-text-file','s:123:\"Deleted file versions will still appear in the file history, but parts of their content will be inaccessible to the public.\";'),('en','messages:logdelete-text','s:112:\"Deleted log events will still appear in the logs, but parts of their content will be inaccessible to the public.\";'),('en','messages:revdelete-text-others','s:128:\"Other administrators will still be able to access the hidden content and to undelete it, unless additional restrictions are set.\";'),('en','messages:revdelete-confirm','s:168:\"Please confirm that you intend to do this, that you understand the consequences, and that you are doing this in accordance with [[{{MediaWiki:Policy-url}}|the policy]].\";'),('en','messages:revdelete-suppress-text','s:233:\"Suppression should <strong>only</strong> be used for the following cases:\n* potentially libelous information\n* inappropriate personal information\n*: <em>home addresses and telephone numbers, national identification numbers, etc.</em>\";'),('en','messages:revdelete-legend','s:27:\"Set visibility restrictions\";'),('en','messages:revdelete-hide-text','s:13:\"Revision text\";'),('en','messages:revdelete-hide-image','s:17:\"Hide file content\";'),('en','messages:revdelete-hide-name','s:26:\"Hide target and parameters\";'),('en','messages:revdelete-hide-comment','s:12:\"Edit summary\";'),('en','messages:revdelete-hide-user','s:28:\"Editor\'s username/IP address\";'),('en','messages:revdelete-hide-restricted','s:51:\"Suppress data from administrators as well as others\";'),('en','messages:revdelete-radio-same','s:15:\"(do not change)\";'),('en','messages:revdelete-radio-set','s:6:\"Hidden\";'),('en','messages:revdelete-radio-unset','s:7:\"Visible\";'),('en','messages:revdelete-suppress','s:51:\"Suppress data from administrators as well as others\";'),('en','messages:revdelete-unsuppress','s:41:\"Remove restrictions on restored revisions\";'),('en','messages:revdelete-log','s:7:\"Reason:\";'),('en','messages:revdelete-submit','s:50:\"Apply to selected {{PLURAL:$1|revision|revisions}}\";'),('en','messages:revdelete-success','s:28:\"Revision visibility updated.\";'),('en','messages:revdelete-failure','s:44:\"Revision visibility could not be updated:\n$1\";'),('en','messages:logdelete-success','s:19:\"Log visibility set.\";'),('en','messages:logdelete-failure','s:35:\"Log visibility could not be set:\n$1\";'),('en','messages:revdel-restore','s:17:\"change visibility\";'),('en','messages:pagehist','s:12:\"Page history\";'),('en','messages:deletedhist','s:15:\"Deleted history\";'),('en','messages:revdelete-hide-current','s:86:\"Error hiding the item dated $2, $1: This is the current revision.\nIt cannot be hidden.\";'),('en','messages:revdelete-show-no-access','s:106:\"Error showing the item dated $2, $1: This item has been marked \"restricted\".\nYou do not have access to it.\";'),('en','messages:revdelete-modify-no-access','s:108:\"Error modifying the item dated $2, $1: This item has been marked \"restricted\".\nYou do not have access to it.\";'),('en','messages:revdelete-modify-missing','s:60:\"Error modifying item ID $1: It is missing from the database!\";'),('en','messages:revdelete-no-change','s:94:\"<strong>Warning:</strong> The item dated $2, $1 already had the requested visibility settings.\";'),('en','messages:revdelete-concurrent-change','s:151:\"Error modifying the item dated $2, $1: Its status appears to have been changed by someone else while you attempted to modify it.\nPlease check the logs.\";'),('en','messages:revdelete-only-restricted','s:149:\"Error hiding the item dated $2, $1: You cannot suppress items from view by administrators without also selecting one of the other visibility options.\";'),('en','messages:revdelete-reason-dropdown','s:156:\"*Common delete reasons\n** Copyright violation\n** Inappropriate comment or personal information\n** Inappropriate username\n** Potentially libelous information\";'),('en','messages:revdelete-otherreason','s:24:\"Other/additional reason:\";'),('en','messages:revdelete-reasonotherlist','s:12:\"Other reason\";'),('en','messages:revdelete-edit-reasonlist','s:19:\"Edit delete reasons\";'),('en','messages:revdelete-offender','s:16:\"Revision author:\";'),('en','messages:suppressionlog','s:15:\"Suppression log\";'),('en','messages:suppressionlogtext','s:181:\"Below is a list of deletions and blocks involving content hidden from administrators.\nSee the [[Special:BlockList|block list]] for the list of currently operational bans and blocks.\";'),('en','messages:mergehistory','s:20:\"Merge page histories\";'),('en','messages:mergehistory-header','s:156:\"This page lets you merge revisions of the history of one source page into a newer page.\nMake sure that this change will maintain historical page continuity.\";'),('en','messages:mergehistory-box','s:29:\"Merge revisions of two pages:\";'),('en','messages:mergehistory-from','s:12:\"Source page:\";'),('en','messages:mergehistory-into','s:17:\"Destination page:\";'),('en','messages:mergehistory-list','s:22:\"Mergeable edit history\";'),('en','messages:mergehistory-merge','s:224:\"The following revisions of [[:$1]] can be merged into [[:$2]].\nUse the radio button column to merge in only the revisions created at and before the specified time.\nNote that using the navigation links will reset this column.\";'),('en','messages:mergehistory-go','s:20:\"Show mergeable edits\";'),('en','messages:mergehistory-submit','s:15:\"Merge revisions\";'),('en','messages:mergehistory-empty','s:27:\"No revisions can be merged.\";'),('en','messages:mergehistory-done','s:85:\"$3 {{PLURAL:$3|revision|revisions}} of $1 {{PLURAL:$3|was|were}} merged into [[:$2]].\";'),('en','messages:mergehistory-fail','s:77:\"Unable to perform history merge, please recheck the page and time parameters.\";'),('en','messages:mergehistory-fail-bad-timestamp','s:21:\"Timestamp is invalid.\";'),('en','messages:mergehistory-fail-invalid-source','s:23:\"Source page is invalid.\";'),('en','messages:mergehistory-fail-invalid-dest','s:28:\"Destination page is invalid.\";'),('en','messages:mergehistory-fail-no-change','s:87:\"History merge did not merge any revisions. Please recheck the page and time parameters.\";'),('en','messages:mergehistory-fail-permission','s:42:\"Insufficient permissions to merge history.\";'),('en','messages:mergehistory-fail-self-merge','s:42:\"Source and destination pages are the same.\";'),('en','messages:mergehistory-fail-timestamps-overlap','s:61:\"Source revisions overlap or come after destination revisions.\";'),('en','messages:mergehistory-fail-toobig','s:109:\"Unable to perform history merge as more than the limit of $1 {{PLURAL:$1|revision|revisions}} would be moved.\";'),('en','messages:mergehistory-warning-redirect-not-created','s:0:\"\";'),('en','messages:mergehistory-no-source','s:30:\"Source page $1 does not exist.\";'),('en','messages:mergehistory-no-destination','s:35:\"Destination page $1 does not exist.\";'),('en','messages:mergehistory-invalid-source','s:34:\"Source page must be a valid title.\";'),('en','messages:mergehistory-invalid-destination','s:39:\"Destination page must be a valid title.\";'),('en','messages:mergehistory-autocomment','s:27:\"Merged [[:$1]] into [[:$2]]\";'),('en','messages:mergehistory-comment','s:31:\"Merged [[:$1]] into [[:$2]]: $3\";'),('en','messages:mergehistory-same-destination','s:47:\"Source and destination pages cannot be the same\";'),('en','messages:mergehistory-reason','s:7:\"Reason:\";'),('en','messages:mergehistory-revisionrow','s:23:\"$1 ($2) $3 . . $4 $5 $6\";'),('en','messages:mergehistory-redirect-text','s:0:\"\";'),('en','messages:mergelog','s:9:\"Merge log\";'),('en','messages:pagemerge-logentry','s:46:\"merged [[$1]] into [[$2]] (revisions up to $3)\";'),('en','messages:revertmerge','s:7:\"Unmerge\";'),('en','messages:mergelogpagetext','s:75:\"Below is a list of the most recent merges of one page history into another.\";'),('en','messages:history-title','s:24:\"Revision history of \"$1\"\";'),('en','messages:difference-title','s:36:\"Difference between revisions of \"$1\"\";'),('en','messages:difference-title-multipage','s:38:\"Difference between pages \"$1\" and \"$2\"\";'),('en','messages:difference-multipage','s:26:\"(Difference between pages)\";'),('en','messages:lineno','s:8:\"Line $1:\";'),('en','messages:compareselectedversions','s:26:\"Compare selected revisions\";'),('en','messages:showhideselectedversions','s:39:\"Change visibility of selected revisions\";'),('en','messages:editundo','s:4:\"undo\";'),('en','messages:diff-empty','s:15:\"(No difference)\";'),('en','messages:diff-multi-sameuser','s:94:\"({{PLURAL:$1|One intermediate revision|$1 intermediate revisions}} by the same user not shown)\";'),('en','messages:diff-multi-otherusers','s:118:\"({{PLURAL:$1|One intermediate revision|$1 intermediate revisions}} by {{PLURAL:$2|one other user|$2 users}} not shown)\";'),('en','messages:diff-multi-manyusers','s:118:\"({{PLURAL:$1|One intermediate revision|$1 intermediate revisions}} by more than $2 {{PLURAL:$2|user|users}} not shown)\";'),('en','messages:diff-paragraph-moved-tonew','s:51:\"Paragraph was moved. Click to jump to new location.\";'),('en','messages:diff-paragraph-moved-toold','s:51:\"Paragraph was moved. Click to jump to old location.\";'),('en','messages:difference-missing-revision','s:292:\"{{PLURAL:$2|One revision|$2 revisions}} of this difference ($1) {{PLURAL:$2|was|were}} not found.\n\nThis is usually caused by following an outdated diff link to a page that has been deleted.\nDetails can be found in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].\";'),('en','messages:search-summary','s:0:\"\";'),('en','messages:searchresults','s:14:\"Search results\";'),('en','messages:searchresults-title','s:23:\"Search results for \"$1\"\";'),('en','messages:titlematches','s:18:\"Page title matches\";'),('en','messages:textmatches','s:17:\"Page text matches\";'),('en','messages:notextmatches','s:20:\"No page text matches\";'),('en','messages:prevn','s:25:\"previous {{PLURAL:$1|$1}}\";'),('en','messages:nextn','s:21:\"next {{PLURAL:$1|$1}}\";'),('en','messages:prev-page','s:13:\"previous page\";'),('en','messages:next-page','s:9:\"next page\";'),('en','messages:prevn-title','s:40:\"Previous $1 {{PLURAL:$1|result|results}}\";'),('en','messages:nextn-title','s:36:\"Next $1 {{PLURAL:$1|result|results}}\";'),('en','messages:shown-title','s:45:\"Show $1 {{PLURAL:$1|result|results}} per page\";'),('en','messages:viewprevnext','s:40:\"View ($1 {{int:pipe-separator}} $2) ($3)\";'),('en','messages:searchmenu-exists','s:120:\"<strong>There is a page named \"[[:$1]]\" on this wiki.</strong> {{PLURAL:$2|0=|See also the other search results found.}}\";'),('en','messages:searchmenu-new','s:150:\"<strong>Create the page \"[[:$1]]\" on this wiki!</strong> {{PLURAL:$2|0=|See also the page found with your search.|See also the search results found.}}\";'),('en','messages:searchmenu-new-nocreate','s:0:\"\";'),('en','messages:searchprofile-articles','s:13:\"Content pages\";'),('en','messages:searchprofile-images','s:10:\"Multimedia\";'),('en','messages:searchprofile-everything','s:10:\"Everything\";'),('en','messages:searchprofile-advanced','s:8:\"Advanced\";'),('en','messages:searchprofile-articles-tooltip','s:12:\"Search in $1\";'),(

Still getting update.php errors when running it

Sure, but it's fixed the extra spam, and brought in any potential bug fixes

In general this feels like a discussion topic for the MediaWiki support desk, and not (yet) like a bug report for Wikimedia Phabricator.

I think there might be, it sounds like there's some upgrade path that isn't correctly handled

DROP INDEX ct_rc_id ON /*_*/change_tag;
DROP INDEX ct_log_id ON /*_*/change_tag;
DROP INDEX ct_rev_id ON /*_*/change_tag;
DROP INDEX ct_tag ON /*_*/change_tag;

CREATE UNIQUE INDEX /*i*/change_tag_rc_tag ON /*_*/change_tag (ct_rc_id,ct_tag);
CREATE UNIQUE INDEX /*i*/change_tag_log_tag ON /*_*/change_tag (ct_log_id,ct_tag);
CREATE UNIQUE INDEX /*i*/change_tag_rev_tag ON /*_*/change_tag (ct_rev_id,ct_tag);
CREATE INDEX /*i*/change_tag_tag_id ON /*_*/change_tag (ct_tag,ct_rc_id,ct_rev_id,ct_log_id);

This is in 1.16

			[ 'dropIndex', 'change_tag', 'ct_rc_id', 'patch-change_tag-indexes.sql' ],

It should only be trying to run that patch if the ct_rc_id index exists.. But it seemingly doesn't and then fails?

If I choose local and attempt to login, after upgrading, I get this error:

image.png (236×322 px, 8 KB)

[e35d321d17a6a51b39beccd1] /mediawiki/index.php?title=Special:UserLogin&returnto=Main+Page Wikimedia\Rdbms\DBQueryError from line 1457 of /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php: A database query error has occurred. Did you forget to run your application's database schema updater after upgrading? 
Query: SELECT domain FROM `ldap_domains` WHERE user_id = '1' LIMIT 1 
Function: LdapAuthenticationPlugin::loadDomain
Error: 1146 Table 'my_wiki.ldap_domains' doesn't exist (localhost)
Backtrace:

#0 /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php(1427): Wikimedia\Rdbms\Database->makeQueryException(string, integer, string, string)
#1 /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php(1200): Wikimedia\Rdbms\Database->reportQueryError(string, integer, string, string, boolean)
#2 /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php(1653): Wikimedia\Rdbms\Database->query(string, string)
#3 /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php(1730): Wikimedia\Rdbms\Database->select(string, array, array, string, array, array)
#4 /var/www/html/mediawiki/extensions/LdapAuthentication/LdapAuthenticationPlugin.php(2142): Wikimedia\Rdbms\Database->selectRow(string, array, array, string)
#5 /var/www/html/mediawiki/extensions/LdapAuthentication/LdapAuthenticationPlugin.php(2161): LdapAuthenticationPlugin::loadDomain(User)
#6 /var/www/html/mediawiki/extensions/LdapAuthentication/LdapAuthenticationPlugin.php(1260): LdapAuthenticationPlugin::saveDomain(User, string)
#7 /var/www/html/mediawiki/includes/auth/AuthPluginPrimaryAuthenticationProvider.php(145): LdapAuthenticationPlugin->updateUser(User)
#8 /var/www/html/mediawiki/includes/Hooks.php(177): MediaWiki\Auth\AuthPluginPrimaryAuthenticationProvider->onUserLoggedIn(User)
#9 /var/www/html/mediawiki/includes/Hooks.php(205): Hooks::callHook(string, array, array, NULL)
#10 /var/www/html/mediawiki/includes/auth/AuthManager.php(2393): Hooks::run(string, array)
#11 /var/www/html/mediawiki/includes/auth/AuthManager.php(692): MediaWiki\Auth\AuthManager->setSessionDataForUser(User, boolean)
#12 /var/www/html/mediawiki/includes/auth/AuthManager.php(383): MediaWiki\Auth\AuthManager->continueAuthentication(array)
#13 /var/www/html/mediawiki/includes/specialpage/AuthManagerSpecialPage.php(353): MediaWiki\Auth\AuthManager->beginAuthentication(array, string)
#14 /var/www/html/mediawiki/includes/specialpage/AuthManagerSpecialPage.php(482): AuthManagerSpecialPage->performAuthenticationStep(string, array)
#15 /var/www/html/mediawiki/includes/htmlform/HTMLForm.php(660): AuthManagerSpecialPage->handleFormSubmit(array, VFormHTMLForm)
#16 /var/www/html/mediawiki/includes/specialpage/AuthManagerSpecialPage.php(416): HTMLForm->trySubmit()
#17 /var/www/html/mediawiki/includes/specialpage/LoginSignupSpecialPage.php(316): AuthManagerSpecialPage->trySubmit()
#18 /var/www/html/mediawiki/includes/specialpage/SpecialPage.php(565): LoginSignupSpecialPage->execute(NULL)
#19 /var/www/html/mediawiki/includes/specialpage/SpecialPageFactory.php(568): SpecialPage->run(NULL)
#20 /var/www/html/mediawiki/includes/MediaWiki.php(288): SpecialPageFactory::executePath(Title, RequestContext)
#21 /var/www/html/mediawiki/includes/MediaWiki.php(861): MediaWiki->performRequest()
#22 /var/www/html/mediawiki/includes/MediaWiki.php(524): MediaWiki->main()
#23 /var/www/html/mediawiki/index.php(42): MediaWiki->run()
#24 {main}

Oddly I don't see the error if I log in with my local account choosing our domain from the drop down...

I still cannot login via any active directory user

If I choose local and attempt to login, after upgrading, I get this error:

Which is the same error as the original issue, because it's not fixed, as I said before:

The problem here would look to be it doesn't get the database updates finished, so it's not even trying to update that file...

Until the updater is running properly and to completion, there will likely be more broken things like this too

Can you post the output of these two sql queries?

EXPLAIN change_tag;
SHOW INDEXES FROM change_tag;

Sure ...

From EXPLAIN change_tag;

MariaDB [my_wiki]> EXPLAIN change_tag;
+-----------+------------------+------+-----+---------+----------------+
| Field     | Type             | Null | Key | Default | Extra          |
+-----------+------------------+------+-----+---------+----------------+
| ct_id     | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| ct_rc_id  | int(11)          | YES  | MUL | NULL    |                |
| ct_log_id | int(10) unsigned | YES  | MUL | NULL    |                |
| ct_rev_id | int(10) unsigned | YES  | MUL | NULL    |                |
| ct_tag    | varbinary(255)   | NO   | MUL |         |                |
| ct_params | blob             | YES  |     | NULL    |                |
| ct_tag_id | int(10) unsigned | YES  | MUL | NULL    |                |
+-----------+------------------+------+-----+---------+----------------+
7 rows in set (0.00 sec)

MariaDB [my_wiki]>

From SHOW INDEXES FROM change_tag;

MariaDB [my_wiki]> SHOW INDEXES FROM change_tag;
+------------+------------+----------------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table      | Non_unique | Key_name                   | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+------------+------------+----------------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| change_tag |          0 | PRIMARY                    |            1 | ct_id       | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
| change_tag |          0 | change_tag_rc_tag_id       |            1 | ct_rc_id    | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
| change_tag |          0 | change_tag_rc_tag_id       |            2 | ct_tag_id   | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
| change_tag |          0 | change_tag_log_tag_id      |            1 | ct_log_id   | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
| change_tag |          0 | change_tag_log_tag_id      |            2 | ct_tag_id   | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
| change_tag |          0 | change_tag_rev_tag_id      |            1 | ct_rev_id   | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
| change_tag |          0 | change_tag_rev_tag_id      |            2 | ct_tag_id   | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
| change_tag |          1 | change_tag_tag_id          |            1 | ct_tag      | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
| change_tag |          1 | change_tag_tag_id          |            2 | ct_rc_id    | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
| change_tag |          1 | change_tag_tag_id          |            3 | ct_rev_id   | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
| change_tag |          1 | change_tag_tag_id          |            4 | ct_log_id   | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
| change_tag |          1 | change_tag_tag_id_id       |            1 | ct_tag_id   | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
| change_tag |          1 | change_tag_tag_id_id       |            2 | ct_rc_id    | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
| change_tag |          1 | change_tag_tag_id_id       |            3 | ct_rev_id   | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
| change_tag |          1 | change_tag_tag_id_id       |            4 | ct_log_id   | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
| change_tag |          1 | change_tag_rc_tag_nonuniq  |            1 | ct_rc_id    | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
| change_tag |          1 | change_tag_rc_tag_nonuniq  |            2 | ct_tag      | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
| change_tag |          1 | change_tag_log_tag_nonuniq |            1 | ct_log_id   | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
| change_tag |          1 | change_tag_log_tag_nonuniq |            2 | ct_tag      | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
| change_tag |          1 | change_tag_rev_tag_nonuniq |            1 | ct_rev_id   | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
| change_tag |          1 | change_tag_rev_tag_nonuniq |            2 | ct_tag      | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
+------------+------------+----------------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
21 rows in set (0.00 sec)

MariaDB [my_wiki]>

The first one is definitely not what you wanted ;)

Sorry, how'd that get there, anyway apologies,

Updated above... here it is again .. sigh

MariaDB [my_wiki]> EXPLAIN change_tag;
+-----------+------------------+------+-----+---------+----------------+
| Field     | Type             | Null | Key | Default | Extra          |
+-----------+------------------+------+-----+---------+----------------+
| ct_id     | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| ct_rc_id  | int(11)          | YES  | MUL | NULL    |                |
| ct_log_id | int(10) unsigned | YES  | MUL | NULL    |                |
| ct_rev_id | int(10) unsigned | YES  | MUL | NULL    |                |
| ct_tag    | varbinary(255)   | NO   | MUL |         |                |
| ct_params | blob             | YES  |     | NULL    |                |
| ct_tag_id | int(10) unsigned | YES  | MUL | NULL    |                |
+-----------+------------------+------+-----+---------+----------------+
7 rows in set (0.00 sec)

MariaDB [my_wiki]>

Any idea if someone has added indexes to that manually or something?

Because change_tag_tag_id, change_tag_rc_tag_nonuniq, change_tag_log_tag_nonuniq and change_tag_rev_tag_nonuniq shouldn't be there...

This is what we expect

-- A table to track tags for revisions, logs and recent changes.
CREATE TABLE /*_*/change_tag (
  ct_id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,
  -- RCID for the change
  ct_rc_id int NULL,
  -- LOGID for the change
  ct_log_id int unsigned NULL,
  -- REVID for the change
  ct_rev_id int unsigned NULL,
  -- Parameters for the tag; used by some extensions
  ct_params blob NULL,
  -- Foreign key to change_tag_def row
  ct_tag_id int unsigned NOT NULL
) /*$wgDBTableOptions*/;


CREATE UNIQUE INDEX /*i*/change_tag_rc_tag_id ON /*_*/change_tag (ct_rc_id,ct_tag_id);
CREATE UNIQUE INDEX /*i*/change_tag_log_tag_id ON /*_*/change_tag (ct_log_id,ct_tag_id);
CREATE UNIQUE INDEX /*i*/change_tag_rev_tag_id ON /*_*/change_tag (ct_rev_id,ct_tag_id);
-- Covering index, so we can pull all the info only out of the index.
CREATE INDEX /*i*/change_tag_tag_id_id ON /*_*/change_tag (ct_tag_id,ct_rc_id,ct_rev_id,ct_log_id);

No, there is no one editing the database

Now we were on this:

image.png (163×401 px, 12 KB)

We are now on this:
image.png (170×478 px, 13 KB)

A move from MySQL to MariahDB, and fairly large jump, my guess, in versions

Is there something we can do to remove the (what I am guessing) is left over junk your saying should not be there after the upgrade?

These should remove the indexes that shouldn't be there

DROP INDEX change_tag_tag_id ON change_tag;
DROP INDEX change_tag_rc_tag_nonuniq ON change_tag;
DROP INDEX change_tag_log_tag_nonuniq ON change_tag;
DROP INDEX change_tag_rev_tag_nonuniq ON change_tag;

Ok I'll try that and report here in a few minutes

Output:

MariaDB [my_wiki]> DROP INDEX change_tag_tag_id ON change_tag;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

MariaDB [my_wiki]> DROP INDEX change_tag_rc_tag_nonuniq ON change_tag;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

MariaDB [my_wiki]> DROP INDEX change_tag_log_tag_nonuniq ON change_tag;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

MariaDB [my_wiki]> DROP INDEX change_tag_rev_tag_nonuniq ON change_tag;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

MariaDB [my_wiki]> EXPLAIN change_tag;
+-----------+------------------+------+-----+---------+----------------+
| Field     | Type             | Null | Key | Default | Extra          |
+-----------+------------------+------+-----+---------+----------------+
| ct_id     | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| ct_rc_id  | int(11)          | YES  | MUL | NULL    |                |
| ct_log_id | int(10) unsigned | YES  | MUL | NULL    |                |
| ct_rev_id | int(10) unsigned | YES  | MUL | NULL    |                |
| ct_tag    | varbinary(255)   | NO   |     |         |                |
| ct_params | blob             | YES  |     | NULL    |                |
| ct_tag_id | int(10) unsigned | YES  | MUL | NULL    |                |
+-----------+------------------+------+-----+---------+----------------+
7 rows in set (0.01 sec)

MariaDB [my_wiki]> SHOW INDEXES FROM change_tag;
+------------+------------+-----------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table      | Non_unique | Key_name              | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+------------+------------+-----------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| change_tag |          0 | PRIMARY               |            1 | ct_id       | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
| change_tag |          0 | change_tag_rc_tag_id  |            1 | ct_rc_id    | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
| change_tag |          0 | change_tag_rc_tag_id  |            2 | ct_tag_id   | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
| change_tag |          0 | change_tag_log_tag_id |            1 | ct_log_id   | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
| change_tag |          0 | change_tag_log_tag_id |            2 | ct_tag_id   | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
| change_tag |          0 | change_tag_rev_tag_id |            1 | ct_rev_id   | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
| change_tag |          0 | change_tag_rev_tag_id |            2 | ct_tag_id   | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
| change_tag |          1 | change_tag_tag_id_id  |            1 | ct_tag_id   | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
| change_tag |          1 | change_tag_tag_id_id  |            2 | ct_rc_id    | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
| change_tag |          1 | change_tag_tag_id_id  |            3 | ct_rev_id   | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
| change_tag |          1 | change_tag_tag_id_id  |            4 | ct_log_id   | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
+------------+------------+-----------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
11 rows in set (0.00 sec)

Still getting update.php messages, fyi

MariaDB [my_wiki]> exit;
Bye
support@wiki3:/var/www/html/mediawiki$ cd maintenance/
support@wiki3:/var/www/html/mediawiki/maintenance$ sudo php update.php
[sudo] password for support:
MediaWiki 1.31.2 Updater

Your composer.lock file is up to date with current dependencies!
Going to run database updates for my_wiki
Depending on the size of your database this may take a while!
Abort with control-c in the next five seconds (skip this countdown with --quick) ... 0
Turning off Content Handler DB fields for this part of upgrade.
...have ipb_id field in ipblocks table.
...have ipb_expiry field in ipblocks table.
...already have interwiki table
...indexes seem up to 20031107 standards.
...have rc_type field in recentchanges table.
...index new_name_timestamp already set on recentchanges table.
...have user_real_name field in user table.
...querycache table already exists.
...objectcache table already exists.
...categorylinks table already exists.
...have pagelinks; skipping old links table updates
...il_from OK
...have rc_ip field in recentchanges table.
...index PRIMARY already set on image table.
...have rc_id field in recentchanges table.
...have rc_patrolled field in recentchanges table.
...logging table already exists.
...have user_token field in user table.
...have wl_notificationtimestamp field in watchlist table.
...watchlist talk page rows already present.
...user table does not contain user_emailauthenticationtimestamp field.
...page table already exists.
...have log_params field in logging table.
...logging table has correct log_title encoding.
...have ar_rev_id field in archive table.
...have page_len field in page table.
...revision table does not contain inverse_timestamp field.
...have rev_text_id field in revision table.
...have rev_deleted field in revision table.
...have img_width field in image table.
...have img_metadata field in image table.
...have user_email_token field in user table.
...have ar_text_id field in archive table.
...page_namespace is already a full int (int(11)).
...ar_namespace is already a full int (int(11)).
...rc_namespace is already a full int (int(11)).
...wl_namespace is already a full int (int(11)).
...qc_namespace is already a full int (int(11)).
...log_namespace is already a full int (int(11)).
...have img_media_type field in image table.
...already have pagelinks table.
...image table does not contain img_type field.
...already have unique user_name index.
...user_groups table exists and is in current format.
...have ss_total_pages field in site_stats table.
...user_newtalk table already exists.
...transcache table already exists.
...have iw_trans field in interwiki table.
...wl_notificationtimestamp is already nullable.
...index times already set on logging table.
...have ipb_range_start field in ipblocks table.
...no page_random rows needed to be set
...have user_registration field in user table.
...templatelinks table already exists
...externallinks table already exists.
...job table already exists.
...have ss_images field in site_stats table.
...langlinks table already exists.
...querycache_info table already exists.
...filearchive table already exists.
...have ipb_anon_only field in ipblocks table.
...index rc_ns_usertext already set on recentchanges table.
...index rc_user_text already set on recentchanges table.
...have user_newpass_time field in user table.
...redirect table already exists.
...querycachetwo table already exists.
...have ipb_enable_autoblock field in ipblocks table.
...index pl_namespace on table pagelinks includes field pl_from.
...index tl_namespace on table templatelinks includes field tl_from.
...index il_to on table imagelinks includes field il_from.
...have rc_old_len field in recentchanges table.
...have user_editcount field in user table.
...page_restrictions table already exists.
...have log_id field in logging table.
...have rev_parent_id field in revision table.
...have pr_id field in page_restrictions table.
...have rev_len field in revision table.
...have rc_deleted field in recentchanges table.
...have log_deleted field in logging table.
...have ar_deleted field in archive table.
...have ipb_deleted field in ipblocks table.
...have fa_deleted field in filearchive table.
...have ar_len field in archive table.
...have ipb_block_email field in ipblocks table.
...index cl_sortkey on table categorylinks includes field cl_from.
...have oi_metadata field in oldimage table.
...index usertext_timestamp already set on archive table.
...index img_usertext_timestamp already set on image table.
...index oi_usertext_timestamp already set on oldimage table.
...have ar_page_id field in archive table.
...have img_sha1 field in image table.
...protected_titles table already exists.
...have ipb_by_text field in ipblocks table.
...page_props table already exists.
...updatelog table already exists.
...category table already exists.
...category table already populated.
...have ar_parent_id field in archive table.
...have user_last_timestamp field in user_newtalk table.
...protected_titles table has correct pt_title encoding.
...have ss_active_users field in site_stats table.
...ss_active_users user count set...
...have ipb_allow_usertalk field in ipblocks table.
...change_tag table already exists.
...tag_summary table already exists.
...valid_tag table already exists.
...user_properties table already exists.
...log_search table already exists.
...have log_user_text field in logging table.
...l10n_cache table already exists.
Adding index change_tag_rc_tag to table change_tag ...[2f9a6b2ef9026daeeeb7b702] [no req]   Wikimedia\Rdbms\DBQueryError from line 1457 of /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php: A database query error has occurred. Did you forget to run your application's database schema updater after upgrading?
Query: DROP INDEX ct_rc_id ON `change_tag`

Function: Wikimedia\Rdbms\Database::sourceFile( /var/www/html/mediawiki/maintenance/archives/patch-change_tag-indexes.sql )
Error: 1091 Can't DROP 'ct_rc_id'; check that column/key exists (localhost)

Backtrace:
#0 /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php(1427): Wikimedia\Rdbms\Database->makeQueryException(string, integer, string, string)
#1 /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php(1200): Wikimedia\Rdbms\Database->reportQueryError(string, integer, string, string, boolean)
#2 /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php(4194): Wikimedia\Rdbms\Database->query(string, string)
#3 /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php(4129): Wikimedia\Rdbms\Database->sourceStream(resource (closed), NULL, NULL, string, NULL)
#4 /var/www/html/mediawiki/includes/installer/DatabaseUpdater.php(683): Wikimedia\Rdbms\Database->sourceFile(string)
#5 /var/www/html/mediawiki/includes/installer/DatabaseUpdater.php(776): DatabaseUpdater->applyPatch(string, boolean, string)
#6 /var/www/html/mediawiki/includes/installer/DatabaseUpdater.php(482): DatabaseUpdater->addIndex(string, string, string)
#7 /var/www/html/mediawiki/includes/installer/DatabaseUpdater.php(446): DatabaseUpdater->runUpdates(array, boolean)
#8 /var/www/html/mediawiki/maintenance/update.php(203): DatabaseUpdater->doUpdates(array)
#9 /var/www/html/mediawiki/maintenance/doMaintenance.php(94): UpdateMediaWiki->execute()
#10 /var/www/html/mediawiki/maintenance/update.php(248): require_once(string)
#11 {main}
support@wiki3:/var/www/html/mediawiki/maintenance$

Is it just me, or did those commands appear not do anything?

Here is the list of the MariahDB databases:

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mediadb            |
| my_wiki            |
| mysql              |
| performance_schema |
+--------------------+

In case there is something there, again we aren't manually doing anything to these databases

Is it just me, or did those commands appear not do anything?

What do you mean? They clearly dropped the indexes, as they were superfluous... but none of them were the offending

However...

#6 /var/www/html/mediawiki/includes/installer/DatabaseUpdater.php(482): DatabaseUpdater->addIndex(string, string, string)

^ Why is it using addIndex...

Function: Wikimedia\Rdbms\Database::sourceFile( /var/www/html/mediawiki/maintenance/archives/patch-change_tag-indexes.sql )
Error: 1091 Can't DROP 'ct_rc_id'; check that column/key exists (localhost)

If you are asking me, I have no idea what-so-ever

I think at this point

In maintenance/archives/patch-change_tag-indexes.sql, comment (use --) out some stuff...

-- DROP INDEX ct_rc_id ON /*_*/change_tag;
-- DROP INDEX ct_log_id ON /*_*/change_tag;
-- DROP INDEX ct_rev_id ON /*_*/change_tag;
-- DROP INDEX ct_tag ON /*_*/change_tag;

and also

-- CREATE UNIQUE INDEX /*i*/change_tag_rc_tag ON /*_*/change_tag (ct_rc_id,ct_tag);
-- CREATE UNIQUE INDEX /*i*/change_tag_log_tag ON /*_*/change_tag (ct_log_id,ct_tag);
-- CREATE UNIQUE INDEX /*i*/change_tag_rev_tag ON /*_*/change_tag (ct_rev_id,ct_tag);
-- CREATE INDEX /*i*/change_tag_tag_id ON /*_*/change_tag (ct_tag,ct_rc_id,ct_rev_id,ct_log_id);

For some reason, it looks like the patch has been half run, but it's probably not worth the effort trying to work out what/why, just making MW get past the error by commenting out the offending lines. The new indexes are there already, for sure

Let me know if you get errors about tag_summary from the same file...

Still getting update.php errors on the tag_summary after commenting the above out, is this expected?

support@wiki3:/var/www/html/mediawiki/maintenance$ sudo php update.php
MediaWiki 1.31.2 Updater

Your composer.lock file is up to date with current dependencies!
Going to run database updates for my_wiki
Depending on the size of your database this may take a while!
Abort with control-c in the next five seconds (skip this countdown with --quick) ... 0
Turning off Content Handler DB fields for this part of upgrade.
...have ipb_id field in ipblocks table.
...have ipb_expiry field in ipblocks table.
...already have interwiki table
...indexes seem up to 20031107 standards.
...have rc_type field in recentchanges table.
...index new_name_timestamp already set on recentchanges table.
...have user_real_name field in user table.
...querycache table already exists.
...objectcache table already exists.
...categorylinks table already exists.
...have pagelinks; skipping old links table updates
...il_from OK
...have rc_ip field in recentchanges table.
...index PRIMARY already set on image table.
...have rc_id field in recentchanges table.
...have rc_patrolled field in recentchanges table.
...logging table already exists.
...have user_token field in user table.
...have wl_notificationtimestamp field in watchlist table.
...watchlist talk page rows already present.
...user table does not contain user_emailauthenticationtimestamp field.
...page table already exists.
...have log_params field in logging table.
...logging table has correct log_title encoding.
...have ar_rev_id field in archive table.
...have page_len field in page table.
...revision table does not contain inverse_timestamp field.
...have rev_text_id field in revision table.
...have rev_deleted field in revision table.
...have img_width field in image table.
...have img_metadata field in image table.
...have user_email_token field in user table.
...have ar_text_id field in archive table.
...page_namespace is already a full int (int(11)).
...ar_namespace is already a full int (int(11)).
...rc_namespace is already a full int (int(11)).
...wl_namespace is already a full int (int(11)).
...qc_namespace is already a full int (int(11)).
...log_namespace is already a full int (int(11)).
...have img_media_type field in image table.
...already have pagelinks table.
...image table does not contain img_type field.
...already have unique user_name index.
...user_groups table exists and is in current format.
...have ss_total_pages field in site_stats table.
...user_newtalk table already exists.
...transcache table already exists.
...have iw_trans field in interwiki table.
...wl_notificationtimestamp is already nullable.
...index times already set on logging table.
...have ipb_range_start field in ipblocks table.
...no page_random rows needed to be set
...have user_registration field in user table.
...templatelinks table already exists
...externallinks table already exists.
...job table already exists.
...have ss_images field in site_stats table.
...langlinks table already exists.
...querycache_info table already exists.
...filearchive table already exists.
...have ipb_anon_only field in ipblocks table.
...index rc_ns_usertext already set on recentchanges table.
...index rc_user_text already set on recentchanges table.
...have user_newpass_time field in user table.
...redirect table already exists.
...querycachetwo table already exists.
...have ipb_enable_autoblock field in ipblocks table.
...index pl_namespace on table pagelinks includes field pl_from.
...index tl_namespace on table templatelinks includes field tl_from.
...index il_to on table imagelinks includes field il_from.
...have rc_old_len field in recentchanges table.
...have user_editcount field in user table.
...page_restrictions table already exists.
...have log_id field in logging table.
...have rev_parent_id field in revision table.
...have pr_id field in page_restrictions table.
...have rev_len field in revision table.
...have rc_deleted field in recentchanges table.
...have log_deleted field in logging table.
...have ar_deleted field in archive table.
...have ipb_deleted field in ipblocks table.
...have fa_deleted field in filearchive table.
...have ar_len field in archive table.
...have ipb_block_email field in ipblocks table.
...index cl_sortkey on table categorylinks includes field cl_from.
...have oi_metadata field in oldimage table.
...index usertext_timestamp already set on archive table.
...index img_usertext_timestamp already set on image table.
...index oi_usertext_timestamp already set on oldimage table.
...have ar_page_id field in archive table.
...have img_sha1 field in image table.
...protected_titles table already exists.
...have ipb_by_text field in ipblocks table.
...page_props table already exists.
...updatelog table already exists.
...category table already exists.
...category table already populated.
...have ar_parent_id field in archive table.
...have user_last_timestamp field in user_newtalk table.
...protected_titles table has correct pt_title encoding.
...have ss_active_users field in site_stats table.
...ss_active_users user count set...
...have ipb_allow_usertalk field in ipblocks table.
...change_tag table already exists.
...tag_summary table already exists.
...valid_tag table already exists.
...user_properties table already exists.
...log_search table already exists.
...have log_user_text field in logging table.
...l10n_cache table already exists.
Adding index change_tag_rc_tag to table change_tag ...[1d50895d34ca962ff00de466] [no req]   Wikimedia\Rdbms\DBQueryError from line 1457 of /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php: A database query error has occurred. Did you forget to run your application's database schema updater after upgrading?
Query: DROP INDEX ts_rc_id ON `tag_summary`

Function: Wikimedia\Rdbms\Database::sourceFile( /var/www/html/mediawiki/maintenance/archives/patch-change_tag-indexes.sql )
Error: 1091 Can't DROP 'ts_rc_id'; check that column/key exists (localhost)

Backtrace:
#0 /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php(1427): Wikimedia\Rdbms\Database->makeQueryException(string, integer, string, string)
#1 /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php(1200): Wikimedia\Rdbms\Database->reportQueryError(string, integer, string, string, boolean)
#2 /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php(4194): Wikimedia\Rdbms\Database->query(string, string)
#3 /var/www/html/mediawiki/includes/libs/rdbms/database/Database.php(4129): Wikimedia\Rdbms\Database->sourceStream(resource (closed), NULL, NULL, string, NULL)
#4 /var/www/html/mediawiki/includes/installer/DatabaseUpdater.php(683): Wikimedia\Rdbms\Database->sourceFile(string)
#5 /var/www/html/mediawiki/includes/installer/DatabaseUpdater.php(776): DatabaseUpdater->applyPatch(string, boolean, string)
#6 /var/www/html/mediawiki/includes/installer/DatabaseUpdater.php(482): DatabaseUpdater->addIndex(string, string, string)
#7 /var/www/html/mediawiki/includes/installer/DatabaseUpdater.php(446): DatabaseUpdater->runUpdates(array, boolean)
#8 /var/www/html/mediawiki/maintenance/update.php(203): DatabaseUpdater->doUpdates(array)
#9 /var/www/html/mediawiki/maintenance/doMaintenance.php(94): UpdateMediaWiki->execute()
#10 /var/www/html/mediawiki/maintenance/update.php(248): require_once(string)
#11 {main}

Updated sql file contents:

--
-- Rename indexes on change_tag from implicit to explicit names
--

-- DROP INDEX ct_rc_id ON /*_*/change_tag;
-- DROP INDEX ct_log_id ON /*_*/change_tag;
-- DROP INDEX ct_rev_id ON /*_*/change_tag;
-- DROP INDEX ct_tag ON /*_*/change_tag;

DROP INDEX ts_rc_id ON /*_*/tag_summary;
DROP INDEX ts_log_id ON /*_*/tag_summary;
DROP INDEX ts_rev_id ON /*_*/tag_summary;

-- CREATE UNIQUE INDEX /*i*/change_tag_rc_tag ON /*_*/change_tag (ct_rc_id,ct_tag);
-- CREATE UNIQUE INDEX /*i*/change_tag_log_tag ON /*_*/change_tag (ct_log_id,ct_tag);
-- CREATE UNIQUE INDEX /*i*/change_tag_rev_tag ON /*_*/change_tag (ct_rev_id,ct_tag);
-- CREATE INDEX /*i*/change_tag_tag_id ON /*_*/change_tag (ct_tag,ct_rc_id,ct_rev_id,ct_log_id);

CREATE UNIQUE INDEX /*i*/tag_summary_rc_id ON /*_*/tag_summary (ts_rc_id);
CREATE UNIQUE INDEX /*i*/tag_summary_log_id ON /*_*/tag_summary (ts_log_id);
CREATE UNIQUE INDEX /*i*/tag_summary_rev_id ON /*_*/tag_summary (ts_rev_id);

Let me know if you get errors about tag_summary from the same file...

^ I predicted it ;)

Can you run EXPLAIN tag_summary and SHOW INDEXES FROM tag_summary too?

I think we might just need to comment the others out too...

MariaDB [my_wiki]> EXPLAIN tag_summary
    -> ;
+-----------+------------------+------+-----+---------+----------------+
| Field     | Type             | Null | Key | Default | Extra          |
+-----------+------------------+------+-----+---------+----------------+
| ts_id     | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| ts_rc_id  | int(11)          | YES  | UNI | NULL    |                |
| ts_log_id | int(10) unsigned | YES  | UNI | NULL    |                |
| ts_rev_id | int(10) unsigned | YES  | UNI | NULL    |                |
| ts_tags   | blob             | NO   |     | NULL    |                |
+-----------+------------------+------+-----+---------+----------------+
5 rows in set (0.01 sec)

MariaDB [my_wiki]> show indexes from tag_summary
    -> ;
+-------------+------------+--------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table       | Non_unique | Key_name           | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-------------+------------+--------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| tag_summary |          0 | PRIMARY            |            1 | ts_id       | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
| tag_summary |          0 | tag_summary_rc_id  |            1 | ts_rc_id    | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
| tag_summary |          0 | tag_summary_log_id |            1 | ts_log_id   | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
| tag_summary |          0 | tag_summary_rev_id |            1 | ts_rev_id   | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
+-------------+------------+--------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
4 rows in set (0.00 sec)

@Reedy let me know if I should comment anything else out

Thanks for your help

@Reedy let me know if I should comment anything else out

Thanks for your help

Sorry, had to go do my evening plans :)

It looks like all the indexes in that file are there for the tag_summary tabled too... Comment those out too (so the file is just comments) and run update.php again...

Thanks @Reedy for getting back in touch

No worries, plenty of things here too

I will update with my findings in a moment

Ok so the patch-change_tag-indexes.sql file now looks like this:

--
-- Rename indexes on change_tag from implicit to explicit names
--

-- DROP INDEX ct_rc_id ON /*_*/change_tag;
-- DROP INDEX ct_log_id ON /*_*/change_tag;
-- DROP INDEX ct_rev_id ON /*_*/change_tag;
-- DROP INDEX ct_tag ON /*_*/change_tag;

-- DROP INDEX ts_rc_id ON /*_*/tag_summary;
-- DROP INDEX ts_log_id ON /*_*/tag_summary;
-- DROP INDEX ts_rev_id ON /*_*/tag_summary;

-- CREATE UNIQUE INDEX /*i*/change_tag_rc_tag ON /*_*/change_tag (ct_rc_id,ct_tag);
-- CREATE UNIQUE INDEX /*i*/change_tag_log_tag ON /*_*/change_tag (ct_log_id,ct_tag);
-- CREATE UNIQUE INDEX /*i*/change_tag_rev_tag ON /*_*/change_tag (ct_rev_id,ct_tag);
-- CREATE INDEX /*i*/change_tag_tag_id ON /*_*/change_tag (ct_tag,ct_rc_id,ct_rev_id,ct_log_id);

-- CREATE UNIQUE INDEX /*i*/tag_summary_rc_id ON /*_*/tag_summary (ts_rc_id);
-- CREATE UNIQUE INDEX /*i*/tag_summary_log_id ON /*_*/tag_summary (ts_log_id);
-- CREATE UNIQUE INDEX /*i*/tag_summary_rev_id ON /*_*/tag_summary (ts_rev_id);

I don't see anymore errors logged in the update.php script run:

support@wiki3 /v/w/h/m/maintenance> sudo php update.php
MediaWiki 1.31.2 Updater

Your composer.lock file is up to date with current dependencies!
Going to run database updates for my_wiki
Depending on the size of your database this may take a while!
Abort with control-c in the next five seconds (skip this countdown with --quick) ... 0
Turning off Content Handler DB fields for this part of upgrade.
...have ipb_id field in ipblocks table.
...have ipb_expiry field in ipblocks table.
...already have interwiki table
...indexes seem up to 20031107 standards.
...have rc_type field in recentchanges table.
...index new_name_timestamp already set on recentchanges table.
...have user_real_name field in user table.
...querycache table already exists.
...objectcache table already exists.
...categorylinks table already exists.
...have pagelinks; skipping old links table updates
...il_from OK
...have rc_ip field in recentchanges table.
...index PRIMARY already set on image table.
...have rc_id field in recentchanges table.
...have rc_patrolled field in recentchanges table.
...logging table already exists.
...have user_token field in user table.
...have wl_notificationtimestamp field in watchlist table.
...watchlist talk page rows already present.
...user table does not contain user_emailauthenticationtimestamp field.
...page table already exists.
...have log_params field in logging table.
...logging table has correct log_title encoding.
...have ar_rev_id field in archive table.
...have page_len field in page table.
...revision table does not contain inverse_timestamp field.
...have rev_text_id field in revision table.
...have rev_deleted field in revision table.
...have img_width field in image table.
...have img_metadata field in image table.
...have user_email_token field in user table.
...have ar_text_id field in archive table.
...page_namespace is already a full int (int(11)).
...ar_namespace is already a full int (int(11)).
...rc_namespace is already a full int (int(11)).
...wl_namespace is already a full int (int(11)).
...qc_namespace is already a full int (int(11)).
...log_namespace is already a full int (int(11)).
...have img_media_type field in image table.
...already have pagelinks table.
...image table does not contain img_type field.
...already have unique user_name index.
...user_groups table exists and is in current format.
...have ss_total_pages field in site_stats table.
...user_newtalk table already exists.
...transcache table already exists.
...have iw_trans field in interwiki table.
...wl_notificationtimestamp is already nullable.
...index times already set on logging table.
...have ipb_range_start field in ipblocks table.
...no page_random rows needed to be set
...have user_registration field in user table.
...templatelinks table already exists
...externallinks table already exists.
...job table already exists.
...have ss_images field in site_stats table.
...langlinks table already exists.
...querycache_info table already exists.
...filearchive table already exists.
...have ipb_anon_only field in ipblocks table.
...index rc_ns_usertext already set on recentchanges table.
...index rc_user_text already set on recentchanges table.
...have user_newpass_time field in user table.
...redirect table already exists.
...querycachetwo table already exists.
...have ipb_enable_autoblock field in ipblocks table.
...index pl_namespace on table pagelinks includes field pl_from.
...index tl_namespace on table templatelinks includes field tl_from.
...index il_to on table imagelinks includes field il_from.
...have rc_old_len field in recentchanges table.
...have user_editcount field in user table.
...page_restrictions table already exists.
...have log_id field in logging table.
...have rev_parent_id field in revision table.
...have pr_id field in page_restrictions table.
...have rev_len field in revision table.
...have rc_deleted field in recentchanges table.
...have log_deleted field in logging table.
...have ar_deleted field in archive table.
...have ipb_deleted field in ipblocks table.
...have fa_deleted field in filearchive table.
...have ar_len field in archive table.
...have ipb_block_email field in ipblocks table.
...index cl_sortkey on table categorylinks includes field cl_from.
...have oi_metadata field in oldimage table.
...index usertext_timestamp already set on archive table.
...index img_usertext_timestamp already set on image table.
...index oi_usertext_timestamp already set on oldimage table.
...have ar_page_id field in archive table.
...have img_sha1 field in image table.
...protected_titles table already exists.
...have ipb_by_text field in ipblocks table.
...page_props table already exists.
...updatelog table already exists.
...category table already exists.
...category table already populated.
...have ar_parent_id field in archive table.
...have user_last_timestamp field in user_newtalk table.
...protected_titles table has correct pt_title encoding.
...have ss_active_users field in site_stats table.
...ss_active_users user count set...
...have ipb_allow_usertalk field in ipblocks table.
...change_tag table already exists.
...tag_summary table already exists.
...valid_tag table already exists.
...user_properties table already exists.
...log_search table already exists.
...have log_user_text field in logging table.
...l10n_cache table already exists.
Adding index change_tag_rc_tag to table change_tag ...done.
...have rd_interwiki field in redirect table.
...transcache tc_time already converted.
...*_mime_minor fields are already long enough.
...iwlinks table already exists.
...index iwl_prefix_title_from already set on iwlinks table.
...have ul_value field in updatelog table.
...have iw_api field in interwiki table.
...iwl_prefix key doesn't exist.
...have cl_collation field in categorylinks table.
...categorylinks up-to-date.
...module_deps table already exists.
...ar_page_revid key doesn't exist.
Adding index ar_revid to table archive ...done.
...ll_lang is up-to-date.
...user_last_timestamp is already nullable.
...index user_email already set on user table.
...up_property in table user_properties already modified by patch patch-up_property.sql.
...uploadstash table already exists.
...user_former_groups table already exists.
Adding index type_action to table logging ...done.
...have rev_sha1 field in revision table.
...batch conversion of user_options: nothing to migrate. done.
...user table does not contain user_options field.
...have ar_sha1 field in archive table.
...index page_redirect_namespace_len already set on page table.
...have us_chunk_inx field in uploadstash table.
...have job_timestamp field in job table.
...index page_user_timestamp already set on revision table.
...have ipb_parent_block_id field in ipblocks table.
...index ipb_parent_block_id already set on ipblocks table.
...category table does not contain cat_hidden field.
...have rev_content_format field in revision table.
...have rev_content_model field in revision table.
...have ar_content_format field in archive table.
...have ar_content_model field in archive table.
...have page_content_model field in page table.
Content Handler DB fields should be usable now.
...site_stats table does not contain ss_admins field.
...recentchanges table does not contain rc_moved_to_title field.
...sites table already exists.
...have fa_sha1 field in filearchive table.
...have job_token field in job table.
...have job_attempts field in job table.
...have us_props field in uploadstash table.
...ug_group in table user_groups already modified by patch patch-ug_group-length-increase-255.sql.
...ufg_group in table user_former_groups already modified by patch patch-ufg_group-length-increase-255.sql.
...index pp_propname_page already set on page_props table.
...index img_media_mime already set on image table.
...iwl_prefix_title_from index is already non-UNIQUE.
...index iwl_prefix_from_title already set on iwlinks table.
...have ar_id field in archive table.
...have el_id field in externallinks table.
...have rc_source field in recentchanges table.
...index log_user_text_type_time already set on logging table.
...index log_user_text_time already set on logging table.
...have page_links_updated field in page table.
...have user_password_expires field in user table.
...have pp_sortkey field in page_props table.
...recentchanges table does not contain rc_cur_time field.
...index wl_user_notificationtimestamp already set on watchlist table.
...have page_lang field in page table.
...have pl_from_namespace field in pagelinks table.
...have tl_from_namespace field in templatelinks table.
...have il_from_namespace field in imagelinks table.
...img_major_mime in table image already modified by patch patch-img_major_mime-chemical.sql.
...oi_major_mime in table oldimage already modified by patch patch-oi_major_mime-chemical.sql.
...fa_major_mime in table filearchive already modified by patch patch-fa_major_mime-chemical.sql.
...comment fields are up to date...hitcounter doesn't exist.
...site_stats table does not contain ss_total_views field.
...page table does not contain page_counter field.
...msg_resource_links doesn't exist.
...msg_resource doesn't exist.
...bot_passwords table already exists.
...have wl_id field in watchlist table.
...cl_collation key doesn't exist.
...index cl_collation_ext already set on categorylinks table.
...collations up-to-date.
...index rc_name_type_patrolled_timestamp already set on recentchanges table.
...rev_page_id index already non-unique.
...pl_namespace, tl_namespace, il_to indices are already non-UNIQUE.
...have ct_id field in change_tag table.
...have ts_id field in tag_summary table.
...rc_ip in table recentchanges already modified by patch patch-rc_ip_modify.sql.
...index usertext_timestamp already set on archive table.
...have el_index_60 field in externallinks table.
...ug_user_group key doesn't exist.
...have ug_expiry field in user_groups table.
...index img_user_timestamp already set on image table.
...img_media_type in table image already modified by patch patch-add-3d.sql.
...ip_changes table already exists.
...index PRIMARY already set on categorylinks table.
...index PRIMARY already set on templatelinks table.
...index PRIMARY already set on pagelinks table.
...index PRIMARY already set on text table.
...index PRIMARY already set on imagelinks table.
...index PRIMARY already set on iwlinks table.
...index PRIMARY already set on langlinks table.
...index PRIMARY already set on log_search table.
...index PRIMARY already set on module_deps table.
...index PRIMARY already set on objectcache table.
...index PRIMARY already set on querycache_info table.
...index PRIMARY already set on site_stats table.
Renaming index tc_url_idx into PRIMARY to table transcache ...done.
...index PRIMARY already set on user_former_groups table.
...index PRIMARY already set on user_properties table.
...comment table already exists.
...have img_description_id field in image table.
...index PRIMARY already set on l10n_cache table.
...bot_passwords.bp_user is already unsigned int.
...change_tag.ct_log_id is already unsigned int.
...change_tag.ct_rev_id is already unsigned int.
...page_restrictions.pr_user is already unsigned int.
...tag_summary.ts_log_id is already unsigned int.
...tag_summary.ts_rev_id is already unsigned int.
...user_newtalk.user_id is already unsigned int.
...user_properties.up_user is already unsigned int.
...slots table already exists.
...have slot_origin field in slots table.
...content table already exists.
...slot_roles table already exists.
...content_models table already exists.
...actor table already exists.
...rev_text_id in table revision already modified by patch patch-rev_text_id-default.sql.
...table site_stats already modified by patch patch-site_stats-modify.sql.
...index rc_namespace_title_timestamp already set on recentchanges table.
Creating ldap_domains table ...done.
...site_stats is populated...done.
...Update 'populate rev_len and ar_len' already logged as completed.
...Update 'populate rev_sha1' already logged as completed.
...img_sha1 column of image table already populated.
...protocol-relative URLs in externallinks table already fixed.
...fa_sha1 column of filearchive table already populated.
...*_from_namespace column of backlink tables already populated.
...Update 'FixDefaultJsonContentPages' already logged as completed.
...Update 'cleanup empty categories' already logged as completed.
Populating page_props.pp_sortkey...
Updated 0 rows
Populating page_props.pp_sortkey complete.
...Update 'populate ip_changes' already logged as completed.
Set the local repo temp zone container to be private.
Purging caches...done.

Done in 0.3 s.
support@wiki3 /v/w/h/m/maintenance>

Well, no more issues logging in locally, thanks @Reedy

Attempting to login via Active Directory still doesn't work, looking through the debug output to see if I can tell why

I am seeing this - does this mean it is querying locally instead of the AD server, I mean when I attempt to login via AD credentials?

[authentication] Login failed in primary authentication by MediaWiki\Auth\LocalPasswordPrimaryAuthenticationProvider

When I look under the "user_name" field of the "user" table within the "my_wiki" database I do see a list of all of our AD usernames (including mine)

Full output:

IP: 172.16.1.193
Start request POST /mediawiki/index.php?title=Special:UserLogin&returnto=Main+Page
HTTP HEADERS:
HOST: 10.210.200.3
CONNECTION: keep-alive
CONTENT-LENGTH: 218
CACHE-CONTROL: max-age=0
ORIGIN: http://10.210.200.3
UPGRADE-INSECURE-REQUESTS: 1
CONTENT-TYPE: application/x-www-form-urlencoded
USER-AGENT: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
ACCEPT: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
REFERER: http://10.210.200.3/mediawiki/index.php?title=Special:UserLogin&returnto=Main+Page
ACCEPT-ENCODING: gzip, deflate
ACCEPT-LANGUAGE: en-US,en;q=0.9
COOKIE: mw_installer_session=k365scb1stmkuq0juh4a6tmb6s; my_wikiUserName=Admin; wikiEditor-0-toolbar-section=help; wikiEditor-0-booklet-help-page=list; my_wiki_session=lh5v1j8sdldpebh89e3vl3s44vj0jrvg
DNT: 1
[caches] cluster: EmptyBagOStuff, WAN: mediawiki-main-default, stash: db-replicated, message: SqlBagOStuff, session: SqlBagOStuff
[caches] LocalisationCache: using store LCStoreDB
[authentication] Overriding AuthManager primary authn because $wgAuth is LdapAuthenticationPlugin
[session] Session "lh5v1j8sdldpebh89e3vl3s44vj0jrvg" requested without UserID cookie
[DBConnection] Wikimedia\Rdbms\LoadBalancer::openConnection: calling initLB() before first connection.
[DBReplication] Cannot use ChronologyProtector with EmptyBagOStuff.
[DBReplication] Wikimedia\Rdbms\LBFactory::getChronologyProtector: using request info {
"IPAddress": "172.16.1.193",
"UserAgent": "Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/75.0.3770.100 Safari\/537.36",
"ChronologyProtection": false,
"ChronologyPositionIndex": 0
}
[DBConnection] Wikimedia\Rdbms\LoadBalancer::openConnection: connected to database 0 at 'localhost'.
[DBQuery] my_wiki SHOW /* Wikimedia\Rdbms\DatabaseMysqlBase::serverIsReadOnly */ GLOBAL VARIABLES LIKE 'read_only'
[SQLBagOStuff] Connection 981 will be used for SqlBagOStuff
[DBQuery] my_wiki SELECT /* SqlBagOStuff::getMulti */ keyname,value,exptime FROM `objectcache` WHERE keyname = 'my_wiki:MWSession:lh5v1j8sdldpebh89e3vl3s44vj0jrvg'
[DBConnection] Wikimedia\Rdbms\LoadBalancer::openConnection: connected to database 0 at 'localhost'.
[DBQuery] my_wiki BEGIN /* Wikimedia\Rdbms\Database::query (LCStoreDB::get) */
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'deps' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'list' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'preload' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'preload' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'specialPageAliases' LIMIT 1
[DBQuery] my_wiki SELECT /* SqlBagOStuff::getMulti */ keyname,value,exptime FROM `objectcache` WHERE keyname = 'my_wiki:messages:en'
[DBQuery] my_wiki SELECT /* SqlBagOStuff::getMulti */ keyname,value,exptime FROM `objectcache` WHERE keyname = 'my_wiki:messages:en:status'
[DBQuery] my_wiki SELECT /* SqlBagOStuff::getMulti */ keyname,value,exptime FROM `objectcache` WHERE keyname = 'my_wiki:messages:en:lock'
[DBQuery] my_wiki REPLACE /* SqlBagOStuff::setMulti */ INTO `objectcache` (keyname,value,exptime) VALUES ('my_wiki:messages:en:lock','˴2��\0','20190627151507')
[DBQuery] my_wiki SELECT /* MessageCache::loadFromDB(en)-big */ page_title,page_latest FROM `page` WHERE page_is_redirect = '0' AND page_namespace = '8' AND (page_title NOT LIKE '%/%' ESCAPE '`' ) AND (page_len > 10000)
[DBQuery] my_wiki SELECT /* MessageCache::loadFromDB(en)-small */ page_title,old_id,old_text,old_flags FROM `page` JOIN `revision` ON ((page_latest=rev_id)) JOIN `text` ON ((rev_text_id=old_id)) WHERE page_is_redirect = '0' AND page_namespace = '8' AND (page_title NOT LIKE '%/%' ESCAPE '`' ) AND (page_len <= 10000)
[DBQuery] my_wiki REPLACE /* SqlBagOStuff::setMulti */ INTO `objectcache` (keyname,value,exptime) VALUES ('my_wiki:messages:en','���\n�0���E_ ˲�>O���Җ�J;�Ƃ��C���v��UD������u�ߨ|!e����:сQ@���I����}��͹q�]]��.���c^ާ�c �.�e�)h4*�?','20380119031407')
[DBQuery] my_wiki DELETE /* SqlBagOStuff::delete */ FROM `objectcache` WHERE keyname = 'my_wiki:messages:en:lock'
[MessageCache] MessageCache::load: Loading en... local cache is empty, global cache is expired/volatile, loading from database
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:loginreqlink' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'namespaceGenderAliases' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:login' LIMIT 1
Unstubbing $wgParser on call of $wgParser::firstCallInit from MessageCache->transform
Parser: using preprocessor: Preprocessor_DOM
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'magicWords' LIMIT 1
Unstubbing $wgLang on call of $wgLang::_unstub from ParserOptions->__construct
QuickTemplate::__construct was called with no Config instance passed to it
[GlobalTitleFail] MessageCache::parse called by array_map/AuthManagerSpecialPage::{closure}/Message->parse/Message->toString/Message->parseText/MessageCache->parse with no title set.
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'linkPrefixExtension' LIMIT 1
[GlobalTitleFail] MessageCache::parse called by array_map/AuthManagerSpecialPage::{closure}/Message->parse/Message->toString/Message->parseText/MessageCache->parse with no title set.
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:createacct-helpusername' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:userlogin-yourname' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:pt-login-button' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:helplogin-url' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:userlogin-helplink2' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:double-redirect-fixer' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:usermessage-editor' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:proxyblocker' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:sorbs' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:spambot_username' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:autochange-username' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:userlogin-yourname-ph' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:userlogin-yourpassword' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:userlogin-yourpassword-ph' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:yourdomainname' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:userlogin-remembermypassword' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'digitGroupingPattern' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'minimumGroupingDigits' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'separatorTransformTable' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'digitTransformTable' LIMIT 1
[session] SessionBackend "lh5v1j8sdldpebh89e3vl3s44vj0jrvg" data dirty due to dirty(): AuthManagerSpecialPage->performAuthenticationStep/MediaWiki\Auth\AuthManager->beginAuthentication/MediaWiki\Auth\AuthManager->removeAuthenticationSessionData/MediaWiki\Session\Session->remove/MediaWiki\Session\SessionBackend->dirty
[session] SessionBackend "lh5v1j8sdldpebh89e3vl3s44vj0jrvg" save: dataDirty=1 metaDirty=0 forcePersist=0
[DBQuery] my_wiki REPLACE /* SqlBagOStuff::setMulti */ INTO `objectcache` (keyname,value,exptime) VALUES ('my_wiki:MWSession:lh5v1j8sdldpebh89e3vl3s44vj0jrvg','MQKn� ���������e�h�I#%R7�`�G�q�����ܽ��ۊ\r��o@+������:i�i��!���~���L��3�2U+r�\'w!]T+�Hͤ�#d[բ�P	:X���U�3�+��1��y{���G��m5H-)o\r.��pQ���4ê7Bd��o����:A� ���)F)e(l���O��hc��������	�^fe4O��5��g!̥е������q������Rៜ�?��7{�����amsCZ�e`�\'(\nY�����\0�L}��g��$���^���~A�E������k�D�iӔT��ط[Z�F�\n!��������?','20190627161437')
[CryptRand] 0 bytes of randomness leftover in the buffer.
[session] SessionBackend "lh5v1j8sdldpebh89e3vl3s44vj0jrvg" data dirty due to dirty(): MediaWiki\Auth\ThrottlePreAuthenticationProvider->testForAuthentication/MediaWiki\Auth\AuthManager->setAuthenticationSessionData/MediaWiki\Session\Session->setSecret/MediaWiki\Session\Session->set/MediaWiki\Session\SessionBackend->dirty
[session] SessionBackend "lh5v1j8sdldpebh89e3vl3s44vj0jrvg" save: dataDirty=1 metaDirty=0 forcePersist=0
[DBQuery] my_wiki REPLACE /* SqlBagOStuff::setMulti */ INTO `objectcache` (keyname,value,exptime) VALUES ('my_wiki:MWSession:lh5v1j8sdldpebh89e3vl3s44vj0jrvg','MR]s�0��/���%����Am�7B�Z���8`����j��~��{;y���9{�ll��n+�+��b�Qݑ�΅��`?�P@YT��(�V�<�{�U�\Z���Q\n!��n���N�8\nM�D7��DSZ7�gT~s(\n��8>�#K�)�*�By�#�����i�Z��R���r7�E1�� X)��3n#UU��Z��)�X�������4�Y��4;����Ҷ\Z3O��98X����\'@��I�v^ރ�7�^���S�{#�Ѥ�p������k�w�ݲٜ���F�,6���@���e��1Xy��&fo5^s��.O�ɼ\r��Hf��ܦ��{�N��������j��.����L��g���F�j��!��pl������n�����g�i�u:�6������@6tO]��A���Ej�?	�D~����\ndFS�8[������;������_>���HF����0���aW��2����F�D@�YP���*٤��\"�����j�\n|���z��A��i֮�?&�͎��i��@��(!�,P�v��','20190627161437')
[CryptRand] 0 bytes of randomness leftover in the buffer.
[session] SessionBackend "lh5v1j8sdldpebh89e3vl3s44vj0jrvg" data dirty due to dirty(): AuthManagerSpecialPage->performAuthenticationStep/MediaWiki\Auth\AuthManager->beginAuthentication/MediaWiki\Session\Session->setSecret/MediaWiki\Session\Session->set/MediaWiki\Session\SessionBackend->dirty
[session] SessionBackend "lh5v1j8sdldpebh89e3vl3s44vj0jrvg" save: dataDirty=1 metaDirty=0 forcePersist=0
[DBQuery] my_wiki REPLACE /* SqlBagOStuff::setMulti */ INTO `objectcache` (keyname,value,exptime) VALUES ('my_wiki:MWSession:lh5v1j8sdldpebh89e3vl3s44vj0jrvg','MVǒ�X��b։����d�uB���� � $\Z���7�kzw��s�p��a�|����>�Ϗ<�����\'�uF��6�}�:�d#��/\n�Ϗ�/����􉡟���0 #�\Z\'H\Z�8	�yF��ĩ��$�������i������4^0	��t�Ȅ�(��DAQ��f$�U����N��@�����>�\'�>����w!�U\'���{>��#ɲ�m�%��7�,�C�m�-�e�o댒��T\r_+���z���=�8�y�dW����Ɣ�~��_�s 颺�W��͗�����cN���D��c��x$�(G΄�$�GZ\\9�6\\�7s��t!�b�����ӡ��fx�T�8���pll��Tۇ���\\]\"�1�v�ԶЂ�u蘍&��%¼���1�=�,�c�����\\����}~�o�F�%%�??��wޜ��7���燸��������m9��<�\r�95�n�^\n��CV���/�׏��uxOT��B,|_��Pl�m (��=��H��9ڴM���]�h_V�d���WIN�j���vW0�� !��Cr�1�;�R�/2���8b�Z�}���.8��M�D���Kڎ����{vl�����\'�����\':����-������:���!qY�hg\"����2W9;�RB�Pnڌ�:c�F�i�˶�)m5��r�\0?���:�n�+�܄L���-����^^��9���ł�ܛ�/֢����I�\Z��Q��Y����ߦF�e�2�}����]����B�lq�2�#)w=������ti�E�%��谭c���3½a�;�)C*fi��8�q������lڔ����nSj���uW\\T�E��������e�^���8���e1O6 e^e�O�����)����׭v���\\=��-H�b�*^�qͺi��r��9<��]*9��\n%	/�=�hu����6悸��{�fb����E���Y5��+F���!��‚C~\r���,��o$��\'è��P\n��Ы��q����-�:��I��\'z�Xh�b���%�ש���4�q?m����E�l��F~�����/ohx�9Ob�	v�N�^+q����&=w�9��w���|���MѶځ@���m�:�����R>h��g%~Q��L����ĕ��UW�ؤ�2���G+�|u�t����ҥ��g�����w������ؼ��n�wìʪ�LTGj�zƙ/��]18z�[��`֐����?��1�⦂W�	�2�p���Z��ɪ�v�J�6��~��+<�[�c\"s�{L�l���M�Y�ʠ�tK������tʩR����-=Lψ�ul���!	�ͅ!\0Y����P\'̧�Mr��[��l��B7��su����S$ĠT�1S��T��hkT\n7�a�+�+� ��tQ�&�4Y��yl$���%�ߝ���kTn�C� 1��n\Z��ލ>/��J���W��륆I������a��W��ޯ���X}O�҄#��\"i@$�鮏_�^8���-y���H����˙��ux��+z���f�_B�k7o�}q�,���l8L�н�����Z��RX�^�G}��W:��B	l|�=�1Hl���n4SuSg�pV�a3�{���2D��n�9�^��a��{�+��T���\'!s����2Q�M���IJ��xЫ>��-(�����p3h��ؙ��o�A�Vnb�$��y,�������q2�r�=�CP�C��~��3�;Lv�4�`�\rK����Z��#�ŋ�FR(xm5����B���������w�a�$*�ƭ��{�f�s��VgfAǖ�8����K;Sɍe�$�6���#�����zGg��t����.�2WN �D����T2ש}������*���U��r+x��a\0�t�4�?,{���:�.��B��v��^ܽ�6L���g`��U�I�	���L&V�+\\�����(�(��t�����U�Z�,�s���($z�1��[1��!���~/�zsX��6���eh�rD��B�F\"�ҽ���x��Ed�\'Z���[�{���+24��^<�\'�{��������\"p��:ah�Cp���	�,�@���R|�~�>��\n�g8x�XI���Wn�_�d�[���IĂ��������f���6ąl����\r~왣��ޓ���#�zg�����U�L췞�����Qw\"����=1 ��d�a��-�7��8�}$ٗ@NV�M2��U���c�B4d)��q1������ ��A}���!7J�k����0������ �&�YV^��w�|\'�\'��?���������~�r0�N���g��Jª���\'=���}S�?Y�_����v���y���F%����w�����	�+�o�w`�F�%#x�g�%���z��Q�c�d߷�?(����\Z�w�%H�$P���U�Q�����n���0N�4��K�������','20190627161437')
[DBQuery] my_wiki SELECT /* MediaWiki\Auth\TemporaryPasswordPrimaryAuthenticationProvider::beginPrimaryAuthentication */ user_id,user_newpassword,user_newpass_time FROM `user` WHERE user_name = 'Ssalexander494' LIMIT 1
[DBQuery] my_wiki SELECT /* User::idFromName */ user_id FROM `user` WHERE user_name = 'Ssalexander494' LIMIT 1
[DBQuery] my_wiki SELECT /* User::loadFromDatabase */ user_id,user_name,user_real_name,user_email,user_touched,user_token,user_email_authenticated,user_email_token,user_email_token_expires,user_registration,user_editcount FROM `user` WHERE user_id = '17' LIMIT 1
[DBQuery] my_wiki SELECT /* UserGroupMembership::getMembershipsForUser */ ug_user,ug_group,ug_expiry FROM `user_groups` WHERE ug_user = '17'
[DBQuery] my_wiki SELECT /* MediaWiki\Auth\LocalPasswordPrimaryAuthenticationProvider::beginPrimaryAuthentication */ user_id,user_password,user_password_expires FROM `user` WHERE user_name = 'Ssalexander494' LIMIT 1
[DBQuery] my_wiki SELECT /* User::idFromName */ user_id FROM `user` WHERE user_name = 'Ssalexander494' LIMIT 1
[DBQuery] my_wiki SELECT /* User::loadFromDatabase */ user_id,user_name,user_real_name,user_email,user_touched,user_token,user_email_authenticated,user_email_token,user_email_token_expires,user_registration,user_editcount FROM `user` WHERE user_id = '17' LIMIT 1
[DBQuery] my_wiki SELECT /* UserGroupMembership::getMembershipsForUser */ ug_user,ug_group,ug_expiry FROM `user_groups` WHERE ug_user = '17'
[authentication] Login failed in primary authentication by MediaWiki\Auth\LocalPasswordPrimaryAuthenticationProvider
[session] SessionBackend "lh5v1j8sdldpebh89e3vl3s44vj0jrvg" data dirty due to dirty(): AuthManagerSpecialPage->performAuthenticationStep/MediaWiki\Auth\AuthManager->beginAuthentication/MediaWiki\Auth\AuthManager->continueAuthentication/MediaWiki\Session\Session->remove/MediaWiki\Session\SessionBackend->dirty
[session] SessionBackend "lh5v1j8sdldpebh89e3vl3s44vj0jrvg" save: dataDirty=1 metaDirty=0 forcePersist=0
[DBQuery] my_wiki REPLACE /* SqlBagOStuff::setMulti */ INTO `objectcache` (keyname,value,exptime) VALUES ('my_wiki:MWSession:lh5v1j8sdldpebh89e3vl3s44vj0jrvg','MR]s�0��/���%����Am�7B�Z���8`����j��~��{;y���9{�ll��n+�+��b�Qݑ�΅��`?�P@YT��(�V�<�{�U�\Z���Q\n!��n���N�8\nM�D7��DSZ7�gT~s(\n��8>�#K�)�*�By�#�����i�Z��R���r7�E1�� X)��3n#UU��Z��)�X�������4�Y��4;����Ҷ\Z3O��98X����\'@��I�v^ރ�7�^���S�{#�Ѥ�p������k�w�ݲٜ���F�,6���@���e��1Xy��&fo5^s��.O�ɼ\r��Hf��ܦ��{�N��������j��.����L��g���F�j��!��pl������n�����g�i�u:�6������@6tO]��A���Ej�?	�D~����\ndFS�8[������;������_>���HF����0���aW��2����F�D@�YP���*٤��\"�����j�\n|���z��A��i֮�?&�͎��i��@��(!�,P�v��','20190627161437')
[authevents] Login attempt
QuickTemplate::__construct was called with no Config instance passed to it
[GlobalTitleFail] MessageCache::parse called by array_map/AuthManagerSpecialPage::{closure}/Message->parse/Message->toString/Message->parseText/MessageCache->parse with no title set.
[GlobalTitleFail] MessageCache::parse called by array_map/AuthManagerSpecialPage::{closure}/Message->parse/Message->toString/Message->parseText/MessageCache->parse with no title set.
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:wrongpassword' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:loginprompt' LIMIT 1
MediaWiki::preOutputCommit: primary transaction round committed
MediaWiki::preOutputCommit: pre-send deferred updates completed
MediaWiki::preOutputCommit: LBFactory shutdown completed
[cookie] setcookie: "UseDC", "master", "1561648487", "/", "", "", "1"
[cookie] setcookie: "UseCDNCache", "false", "1561648487", "/", "", "", "1"
[DBQuery] my_wiki SELECT /* LinkBatch::doQuery (for Skin::preloadExistence) */ page_id,page_len,page_is_redirect,page_latest,page_content_model,page_namespace,page_title FROM `page` WHERE (page_namespace = '4' AND page_title IN ('Privacy_policy','About','General_disclaimer') )
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'rtl' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'capitalizeAllNouns' LIMIT 1
[DBQuery] my_wiki SELECT /* User::checkNewtalk */ user_ip FROM `user_newtalk` WHERE user_ip = '172.16.1.193' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:pt-login' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:pt-createaccount' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:nstab-special' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'defaultDateFormat' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:january' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:february' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:march' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:april' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:may_long' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:june' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:july' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:august' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:september' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:october' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:november' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:december' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:jan' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:feb' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:mar' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:apr' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:may' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:jun' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:jul' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:aug' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:sep' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:oct' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:nov' LIMIT 1
[DBQuery] my_wiki SELECT /* LCStoreDB::get */ lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'messages:dec' LIMIT 1

I am seeing all this "data dirty" entries, could some bad data be in the database that needs to be expunged?

[session] SessionBackend "lh5v1j8sdldpebh89e3vl3s44vj0jrvg" data dirty due to dirty(): AuthManagerSpecialPage->performAuthenticationStep/MediaWiki\Auth\AuthManager->beginAuthentication/MediaWiki\Auth\AuthManager->removeAuthenticationSessionData/MediaWiki\Session\Session->remove/MediaWiki\Session\SessionBackend->dirty
[session] SessionBackend "lh5v1j8sdldpebh89e3vl3s44vj0jrvg" save: dataDirty=1 metaDirty=0 forcePersist=0
[DBQuery] my_wiki REPLACE /* SqlBagOStuff::setMulti */ INTO `objectcache` (keyname,value,exptime) VALUES ('my_wiki:MWSession:lh5v1j8sdldpebh89e3vl3s44vj0jrvg','MQKn� ���������e�h�I#%R7�`�G�q�����ܽ��ۊ\r��o@+������:i�i��!���~���L��3�2U+r�\'w!]T+�Hͤ�#d[բ�P	:X���U�3�+��1��y{���G��m5H-)o\r.��pQ���4ê7Bd��o����:A� ���)F)e(l���O��hc��������	�^fe4O��5��g!̥е������q������Rៜ�?��7{�����amsCZ�e`�\'(\nY�����\0�L}��g��$���^���~A�E������k�D�iӔT��ط[Z�F�\n!��������?','20190627161437')
[CryptRand] 0 bytes of randomness leftover in the buffer.
[session] SessionBackend "lh5v1j8sdldpebh89e3vl3s44vj0jrvg" data dirty due to dirty(): MediaWiki\Auth\ThrottlePreAuthenticationProvider->testForAuthentication/MediaWiki\Auth\AuthManager->setAuthenticationSessionData/MediaWiki\Session\Session->setSecret/MediaWiki\Session\Session->set/MediaWiki\Session\SessionBackend->dirty
[session] SessionBackend "lh5v1j8sdldpebh89e3vl3s44vj0jrvg" save: dataDirty=1 metaDirty=0 forcePersist=0
[DBQuery] my_wiki REPLACE /* SqlBagOStuff::setMulti */ INTO `objectcache` (keyname,value,exptime) VALUES ('my_wiki:MWSession:lh5v1j8sdldpebh89e3vl3s44vj0jrvg','MR]s�0��/���%����Am�7B�Z���8`����j��~��{;y���9{�ll��n+�+��b�Qݑ�΅��`?�P@YT��(�V�<�{�U�\Z���Q\n!��n���N�8\nM�D7��DSZ7�gT~s(\n��8>�#K�)�*�By�#�����i�Z��R���r7�E1�� X)��3n#UU��Z��)�X�������4�Y��4;����Ҷ\Z3O��98X����\'@��I�v^ރ�7�^���S�{#�Ѥ�p������k�w�ݲٜ���F�,6���@���e��1Xy��&fo5^s��.O�ɼ\r��Hf��ܦ��{�N��������j��.����L��g���F�j��!��pl������n�����g�i�u:�6������@6tO]��A���Ej�?	�D~����\ndFS�8[������;������_>���HF����0���aW��2����F�D@�YP���*٤��\"�����j�\n|���z��A��i֮�?&�͎��i��@��(!�,P�v��','20190627161437')
[CryptRand] 0 bytes of randomness leftover in the buffer.
[session] SessionBackend "lh5v1j8sdldpebh89e3vl3s44vj0jrvg" data dirty due to dirty(): AuthManagerSpecialPage->performAuthenticationStep/MediaWiki\Auth\AuthManager->beginAuthentication/MediaWiki\Session\Session->setSecret/MediaWiki\Session\Session->set/MediaWiki\Session\SessionBackend->dirty
[session] SessionBackend "lh5v1j8sdldpebh89e3vl3s44vj0jrvg" save: dataDirty=1 metaDirty=0 forcePersist=0

I went into LocalSettings.php and changed the flag from "true" to false"

$wgLDAPUseLocal = false;

And attempted to login via AD credentials...

Still getting these "dirty" messages in the output, and cannot connect

session] SessionBackend "lh5v1j8sdldpebh89e3vl3s44vj0jrvg" data dirty due to dirty(): AuthManagerSpecialPage->performAuthenticationStep/MediaWiki\Auth\AuthManager->beginAuthentication/MediaWiki\Auth\AuthManager->removeAuthenticationSessionData/MediaWiki\Session\Session->remove/MediaWiki\Session\SessionBackend->dirty
[session] SessionBackend "lh5v1j8sdldpebh89e3vl3s44vj0jrvg" save: dataDirty=1 metaDirty=0 forcePersist=0
[DBQuery] my_wiki REPLACE /* SqlBagOStuff::setMulti */ INTO `objectcache` (keyname,value,exptime) VALUES ('my_wiki:MWSession:lh5v1j8sdldpebh89e3vl3s44vj0jrvg','MQKn� ���������/�E�H\Z)�����8B�C�N[���;�q�����\rh%�OT�bV��5��t��|Ń��G�p���*�;�&�\\(Vr)р���j��d�5� �U��r��)�Ly{���G��u�I-3Q�Z����m�UU��� �ij}��������H͜�Y�q��I���IŴ1/go�y�A�^f�Y���k��b�J�k����׻�����å“�ÿ}�%��[İ��a6�K�V�8+��L�<#$	8�Ц�vrQI��`��p����R���.�< ��\\\n�S�Nh�o�r5aW����m������','20190627164526')
[CryptRand] 0 bytes of randomness leftover in the buffer.
[session] SessionBackend "lh5v1j8sdldpebh89e3vl3s44vj0jrvg" data dirty due to dirty(): MediaWiki\Auth\ThrottlePreAuthenticationProvider->testForAuthentication/MediaWiki\Auth\AuthManager->setAuthenticationSessionData/MediaWiki\Session\Session->setSecret/MediaWiki\Session\Session->set/MediaWiki\Session\SessionBackend->dirty
[session] SessionBackend "lh5v1j8sdldpebh89e3vl3s44vj0jrvg" save: dataDirty=1 metaDirty=0 forcePersist=0
[DBQuery] my_wiki REPLACE /* SqlBagOStuff::setMulti */ INTO `objectcache` (keyname,value,exptime) VALUES ('my_wiki:MWSession:lh5v1j8sdldpebh89e3vl3s44vj0jrvg','MRے�0���^�j6A����g��Π�x�y ���P��w�� ��T��ݧsN�PWw����j�VT�R�l�X��2�38.!�P�\r���t�C��G�[����L�8���6Lb�`����\"@�+�@:Z����o	e��/�G=��ԡ���D�B	�Ĉ�Բ�N�������A��T�U i���3�b��VB��y��m���$y>�	=h-MO�޻��l�1����\r]D�IzZ�����	�C\\|�:��d;_�[��{ϗ��|D��Q�.V �,P��z�g�6��a���tZ��z���$�=\"���%�}���<�\\�A&��~�^<��bl�b�0������J����F�����S|���C���ק�$��`�����M�NX�h�O7�w���\Z���]^z�{�j\\��}l��f\n,d~���}�*��0NW<��_���y����79&��g��}�(�T���f��\r��|*�U8-p�U-�$����1��U�I-�e��0����r5��.�ݶI01;�NZW��w��N��i�� K^V�\Z�ܽ���','20190627164526')
[CryptRand] 0 bytes of randomness leftover in the buffer.
[session] SessionBackend "lh5v1j8sdldpebh89e3vl3s44vj0jrvg" data dirty due to dirty(): AuthManagerSpecialPage->performAuthenticationStep/MediaWiki\Auth\AuthManager->beginAuthentication/MediaWiki\Session\Session->setSecret/MediaWiki\Session\Session->set/MediaWiki\Session\SessionBackend->dirty
[session] SessionBackend "lh5v1j8sdldpebh89e3vl3s44vj0jrvg" save: dataDirty=1 metaDirty=0 forcePersist=0
[DBQuery] my_wiki REPLACE /* SqlBagOStuff::setMulti */ INTO `objectcache` (keyname,value,exptime) VALUES ('my_wiki:MWSession:lh5v1j8sdldpebh89e3vl3s44vj0jrvg','MVɲ�H��w�Y�\'��:�X%@H,���$;���&`��}P���6N����n�x�=��O���_1�������5����mʤv��K��S\">%f�U5YQ������b��O\"�s4�82�������@�!�\0��ǯM���9I���?��c�Ny��$�m�� !��2)˦T�����n��2NI}H:8l�m�bO�8NlD�Ó\Z�����_0�����V_�e8�����&�	�by����O�x��`�G(p�*l�\0�$�<.���)����,_t09z��Y�����+���/�c:)���`��}�5����0o�mY�]���<����,B)4��z��^i�x(�M�F��D�5��2���2��s:	׼��Ɠ[��\Z�^�/��<ʝ-\\%�@�Q��A��o�{��������6�&�a�t���{��pH>e�����1ǃQ9�WQ4��:�o�� s7.�I8d�Պ��k{�?�������I�w��Yr���/7�L\'�zYЕሼgD��B���0��݂������-&�y�*\"��r�Ǩ�N��y��W�&6O�d��CA5v���֎�T��A�/��-��+�^�fp�Й:���ɐ���,���y��W.��5E}(ΖԨxE�r#���j`-U�A�P�eɪٚ3їWM>��(:��3�\Z�-�Ž��|z�䳞z��\r�gѠ��1��=��Nko1-�����+8ږɅT�w��f3�.��zİ~��f��4ʹ ��`���Qo��f5���]��\0:�3T���^m�0f��,��Ġ�X�i�y�N�1�4�S��y��xS�\'��c��?�ϱ����ėW�$���l��|��A\0�n������9�~�d��j\"�E�t�\"����o��a?]��������C�\Z0�`���=S��M�#k��8�juB�k�bI�O��]����.�c�i��ޮd��v^�M���v֔;��T�Z�����%�*Zi��Pm��ML��#��pb\Z�t�\r�q�\Z��}r%G7��~��z���%1+�S�8J��������ί�_��\',d���4�#Li.��[�ry�\"L�T֓X�6��\n�(\\z4�\"î��{�B<?]\re��%�LNzT�C��q(߲[\'���*b�C|d��\r1>Pg���yx�c�\n��+��-$Rv��F�<e��N�n�>k}e�ԡ��]�S0�����u�����yۜG�ʩ���v\"5���4��̾G�to��\\�uo�R�č���b`�\n8��s����0�\0D��)�r�)7���H8�O�ؘ�5�&�&H���H������Q�j��� 39��9m=�k����Q�i�w�\\���	���l?\'��s�\'I�c=�|�:K�3��\Z���{�ɽ�/�#�3�my;�����޼�bb��). u���<\r�����\"��l�u���+s�%y3xŊ��I����(C�;���4�&G����;&���h��k�O�‹*�z�����D�`�YH��G��X�q縥��[9��>��q�s��쪽��ڲ̯��ѣ�[����������ͱ�.i<!�k\n�e~L��աG�Zg���G4�Ix�k�[\r��+xW��P�i��e��Q�xp��%y��$^��;WU���D��/��0|e���:�d�����2�>L禈};�<�\0�[t��I\'�xu��R�+<\n���	�~\' J��\'� �����v��$�~����f���V������߇�)��O���N�����Ӷ��V����OD�����,��o��\r�h|#��KP�x�k��+m�(�\\�v����+�ۢK�/\0���f(��ߪ[\\eI|��?[oX�t�vx��#A����','20190627164526')

Still getting these "dirty" messages in the output, and cannot connect

I think that's mostly an output encoding issue, wouldn't worry about it

You need to see the ldap debug logs - https://www.mediawiki.org/wiki/Extension:LDAP_Authentication/Configuration_Options#Debugging_options

Here's the old LDAP settings for MediaWiki 1.19.14+dfsg-1, that does work as of now:

equire_once( "$IP/extensions/LdapAuthentication/LdapAuthentication.php");
$wgAuth = new LdapAuthenticationPlugin();
#$wgLDAPDebug = 99;
#$wgDebugLogGroups["ldap"]="/tmp/ldapdebug.log";
$wgLDAPDomainNames = array("###");
$wgLDAPServerNames = array("###"=>"10.210.88.1");
$wgLDAPUseLocal = true;
$wgLDAPSearchStrings = array("###"=>"###\\USER-NAME");
$wgLDAPSearchAttributes = array("###" => "sAMAccountName");
$wgLDAPBaseDNs = array("###" => "ou=Employees,dc=###,dc=local");

#AS GROUP INFORMATION

$wgLDAPGroupUseFullDN = array( "###"=>true );
$wgLDAPLowerCaseUsername = array ("###"=>true);
$wgLDAPGroupUseRetrievedUsername = array ("###"=> false);
#$wgLDAPUseLDAPGroups = array(

$wgLDAPGroupBaseDNs = array("###"=>"cn=Users,dc=###,dc=local");
$wgLDAPProxyAgentPassword = array("###" => "cn=InfoSvcs WikiLdapBind,ou=Infosvcs_Mgmt_###ounts,ou=employees,dc=###,dc=local");
$wgLDAPProxyAgentPassword = array("###" => "...");
$wgLDAPEncryptionType = array("###" => "clear");
$wgMinimalPasswordLength = 1;
$wgLDAPRequiredGroups = array( "###"=>array("cn=MediaWikiLogon,cn=users,dc=###,dc=local") );
#$wgLDAPGroupObjectclass = array( "###"=>"InfoSvcs" );
#$wgLDAPGroupAttribute = array( "###"=>"uniquemember" );
#$wgLDAPGroupSearchNestedGroups = array( "###"=>false );
#$wgLDAPGroupNameAttribute = array( "###"=>"cn" );
$wgLDAPGroupsUseMemberOf = array("###"=>true);

See anything obvious that we need to add or change to make it work on the later 1.31.2 version?

I did some hacking on the LocalSettings.php file, using are old file for the older wiki, and some stuff on the web and I was able to get the ActiveDirectory login to work.

Thank you @Reedy for all the help you can close the ticket

I did some hacking on the LocalSettings.php file, using are old file for the older wiki, and some stuff on the web and I was able to get the ActiveDirectory login to work.

@Salexanderacc: Please document here for others what that means exactly and how you got it to work.

  1. Per @Reedy I deleted some indexes ( described in this ticket)
  2. Also, per him I commented out the entire /maintenance/archives/patch-change_tag-indexes.sql, per Sam's advice
  3. This allowed the /maintenance/update.php script to complete
  4. I then modified the LocalSettings.php script to look like the following which has allowed Active Directory to work (at least for us)
# Enable LDAP Authentication
require_once( "$IP/extensions/LdapAuthentication/LdapAuthentication.php");
$wgAuth = new LdapAuthenticationPlugin();
#$wgLDAPDebug = 99;
#$wgDebugLogGroups["ldap"]="/tmp/ldapdebug.log";
$wgLDAPDomainNames = array("###");
$wgLDAPServerNames = array("###"=>"<IP_ADD>");
$wgLDAPUseLocal = true;
$wgLDAPSearchStrings = array("###"=>"###\\USER-NAME");
$wgLDAPSearchAttributes = array("###" => "sAMAccountName");
$wgLDAPBaseDNs = array("###" => "ou=Employees,dc=###,dc=local");

#AS GROUP INFORMATION

$wgLDAPGroupUseFullDN = array( "###"=>true );
$wgLDAPLowerCaseUsername = array ("###"=>true);
$wgLDAPGroupUseRetrievedUsername = array ("###"=> false);
#$wgLDAPUseLDAPGroups = array(

$wgLDAPGroupBaseDNs = array("###"=>"cn=Users,dc=###,dc=local");
$wgLDAPProxyAgentPassword = array("###" => "cn=InfoSvcs WikiLdapBind,ou=Infosvcs_Mgmt_Accounts,ou=employees,dc=###,dc=local");
$wgLDAPProxyAgentPassword = array("###" => "<PASSW>");
$wgLDAPEncryptionType = array("###" => "clear");
$wgLDAPUseLocal = true;
$wgMinimalPasswordLength = 1;
$wgLDAPRequiredGroups = array( "###"=>array("cn=MediaWikiLogon,cn=users,dc=###,dc=local") );
#$wgLDAPGroupObjectclass = array( "###"=>"InfoSvcs" );
#$wgLDAPGroupAttribute = array( "###"=>"uniquemember" );
#$wgLDAPGroupSearchNestedGroups = array( "###"=>false );
#$wgLDAPGroupNameAttribute = array( "###"=>"cn" );
$wgLDAPGroupsUseMemberOf = array("###"=>true);

$wgLDAPRetrievePrefs = array( "###" => "true" );
$wgShowExceptionDetails = true; //for debugging MediaWiki

  • Where ### is the first "something" part only of "<something>.local"
  • Where IP_ADD is the IP address of the Active Directory Server
  • Where PASSW is the password for the LDAP proxy
  1. If we used the FQDN instead of the just the first part of the address (i.e. the "something" part) it did not work
  2. If we used the FQDN for the AD server it did not work, only the IP address worked for us
  3. If we did not include the group info it did not work
Reedy claimed this task.