mysql-5.7.9 shutdown 语法详解

mysql-5.7.9 终于提供shutdown 语法啦

  之前如果想关闭一个mysql数据库可以通过kill 命令、mysqladmin shutdown 、service mysqld stop 等这样的方式。

  然而在mysql-5.7.9之后mysql终于提供了SQL接口的shutdown语法啦!

SQL接口下的shutdown语法

  语法

shutdown ; -- 这个shutdown要执行成功要有shutdown权限才行。

shutdown的一个例子

[root@workstudio ansible]# mysql -uroot -h127.0.0.1  -- 登录进mysql
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 3
Server version: 5.7.18-enterprise-commercial-advanced-log MySQL Enterprise Server - Advanced Edition (Commercial)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

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> shutdown ; -- 通过SQL接口的方式执行shutdown
Query OK, 0 rows affected (0.00 sec)

-- 在mysql客户端下执行system 来执行linux命令 这里用ps来查看linux上有没有mysqld 这个服务程序了
mysql> system ps -ef | grep mysql
root       5709   3403  0 13:32 pts/0    00:00:00 mysql -uroot -h127.0.0.1
root       5720   5709  0 13:33 pts/0    00:00:00 sh -c  ps -ef | grep mysql
root       5722   5720  0 13:33 pts/0    00:00:00 grep mysql

-- 由ps的结果可以看出mysql数据库已经关闭了(mysqld这个进程没有了)

如果权限不足会看下如下效果

mysql> shutdown;
ERROR 1227 (42000): Access denied; you need (at least one of) the SHUTDOWN privilege(s) for this operation

由于shutdown是实例级的权限、所以授权语句如下

mysql> grant shutdown on *.* to jiangle@'localhost' ;
Query OK, 0 rows affected, 1 warning (0.00 sec)

-- 授予jiangle@'localhost'用户shutdown权限

----

学习交流

原文地址:https://www.cnblogs.com/JiangLe/p/7053831.html