Manual:sql.php

From Linux Web Expert

<td class="mw-version-versionbox" title="<translate nowrap> The latest stable version is <tvar name=1>1.41</tvar></translate>">
<translate> ≥</translate> 1.10
<translate> MediaWiki version:</translate>

File:OOjs UI icon notice-destructive.svg <translate> Warning:</translate> Since MediaWiki 1.28, sql.php may have some side effects. Please make sure you have run update.php and things do not break before running this script!

sql.php is a maintenance file which allows performing SQL queries. If you give an SQL file as the first argument, it will replace MediaWiki specific code comments like /*_*/ for the configured database prefix (among others). If you don't give it a file, then you can query the database in an interactive fashion, similar to the MySQL command line tool.

This script is often used if you want to upgrade MediaWiki, but have a large, master/replica-database setup and don't want any downtime. Instead of using update.php, you might use sql.php to apply database individual patches from maintenance/archives directory on each sql server separately, taking the individual server out of rotation while the schema change runs. Generally you should only do this if you have to - most users should use the update.php script instead.

Options/Arguments

Available options for this script from the command line are:

Option Description Required?
--query Run a single query instead of running interactively <translate> Optional</translate>
--json Output the results as JSON instead of PHP objects <translate> Optional</translate>
--status Return successful exit status only if the query succeeded (selected or altered rows), otherwise 1 for errors, 2 for no rows <translate> Optional</translate>
--cluster Allows a cluster name to be provided for the command. <translate> Optional</translate>
--wikidb Allows for a different database to be used in the command by ID if not the current database. <translate> Optional</translate>
--replicadb Replica DB server to use instead of the primary DB (can be "any") <translate> Optional</translate>

Usage

php maintenance/sql.php [ --query| --json| --status| --cluster| --wikidb| --replicadb ]

Interactive mode

Terminal

Inline query

Terminal

Applying patches

Terminal

See also