Manual:mysql.php

From mediawiki.org


Details[edit]

The mysql.php maintenance script executes the MySQL client binary by connecting to the wiki's database. It takes credentials from LocalSettings.php and logs in to MySQL client.

Options[edit]

Option Description Required
--write Connect to the primary database Optional
--group Specify query group Optional
--host Connect to a specific MySQL server Optional
--list-hosts List the available database hosts Optional
--cluster Use an external cluster by name Optional
--wikidb The database wiki ID to use if not the current one Optional

Usage[edit]

php maintenance/mysql.php [ --write| --group| --host| --list-hosts| --cluster| --wikidb ]

Log in to MySQL client[edit]

Terminal
$ php maintenance/mysql.php
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.26 Homebrew

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

List database hosts[edit]

Terminal
$ php maintenance/mysql.php --list-hosts

primary.serv.er
replica1.serv.er
replica2.serv.er

Log in to MySQL client with cluster[edit]

If you use a database cluster to run your wiki with $wgExternalServers, you can use the --cluster option to log in.

$wgExternalServers = [
	'demoCluster' => [
		[ 'host' => 'leader.example.org', 'user' => 'userM',  'password' =>'pwdM',  'dbname' => 'dbM',  'type' => "mysql", 'load' => 1 ],
		[ 'host' => 'follower1.example.org', 'user' => 'userS1', 'password' =>'pwdS1', 'dbname' => 'dbS1', 'type' => "mysql", 'load' => 1 ],
		[ 'host' => 'follower2.example.org', 'user' => 'userS2', 'password' =>'pwdS2', 'dbname' => 'dbS2', 'type' => "mysql", 'load' => 1 ]
   ]
];
Terminal
$ php maintenance/mysql.php --cluster demoCluster
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 25
Server version: 8.0.26 Homebrew

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Common error[edit]

Error: invalid cluster

This error occurs when an invalid or non-existent cluster name is given to the script.

Error: this script only works with MySQL/MariaDB

This error occurs when you run the script on a wiki that uses sqlite.

See also[edit]