SHUTDOWN
Syntax
SHUTDOWN [WAIT FOR ALL { SLAVES | REPLICAS } ]
Description
The SHUTDOWN
command shuts the server down.
WAIT FOR ALL SLAVES
The WAIT FOR ALL SLAVES
option was first added in MariaDB 10.4.4. WAIT FOR ALL REPLICAS
has been a synonym since MariaDB 10.5.1.
When a master server is shutdown and it goes through the normal shutdown process, the master kills client threads in random order. By default, the master also considers its binary log dump threads to be regular client threads. As a consequence, the binary log dump threads can be killed while client threads still exist, and this means that data can be written on the master during a normal shutdown that won't be replicated. This is true even if semi-synchronous replication is being used.
In MariaDB 10.4 and later, this problem can be solved by shutting down the server with the SHUTDOWN command and by providing the WAIT FOR ALL SLAVES
option to the command. For example:
SHUTDOWN WAIT FOR ALL SLAVES;
When the WAIT FOR ALL SLAVES
option is provided, the server only kills its binary log dump threads after all client threads have been killed, and it only completes the shutdown after the last binary log has been sent to all connected replicas.
See Replication Threads: Binary Log Dump Threads and the Shutdown Process for more information.
Required Permissions
One must have a SHUTDOWN
privilege (see GRANT) to use this command. It is the same privilege one needs to use the mariadb-admin/mysqladmin shutdown command.
Shutdown for Upgrades
If you are doing a shutdown to migrate to another major version of MariaDB, please ensure that the innodb_fast_shutdown variable is not 2 (fast crash shutdown). The default of this variable is 1.
Example
The following example shows how to create an event which turns off the server at a certain time:
CREATE EVENT `test`.`shutd` ON SCHEDULE EVERY 1 DAY STARTS '2014-01-01 20:00:00' COMMENT 'Shutdown Maria when the office is closed' DO BEGIN SHUTDOWN; END;
Other Ways to Stop mysqld
You can use the mariadb-admin/mysqladmin shutdown command to take down mysqld cleanly.
You can also use the system kill command on Unix with signal SIGTERM (15)
kill -SIGTERM pid-of-mysqld-process
You can find the process number of the server process in the file that ends with .pid
in your data directory.
The above is identical to mysqladmin shutdown
.
On windows you should use:
NET STOP MySQL
See Also
© 2021 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/shutdown/