在讲如何启动 MySQL Cluster 集群环境中各个节点时,我们是按照启动管理节点、数据节点、SQL节点顺序进行的。
但是对各个节点的关闭操作顺序则是相反的,即在对 MySQL Cluster 集群环境中各个节点上的服务进行关闭时,要按照如下的顺序进行关闭:SQL节点、数据节点、管理节点。这一小节,我们就来讲解如何将其关闭。
SQL 节点
要想关闭 SQL节点上服务,有两个选择:
- 选择一,直接在 SQL 节点上将 mysqld 相关的进程进行 kill 掉;
- 选择二,在登录到数据库执行 shutdown 命令。
选择一的具体操作如下所示:
[mysql@mysql05 ~]$ ps -ef | grep mysql mysql 6022 6003 0 09:05 pts/0 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf mysql 6206 6022 3 09:05 pts/0 00:04:11 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/mysql/mydata --plugin-dir=/usr/local/mysql/lib/plugin --log-error=mysql05.err --pid-file=mysql05.pid --socket=/mysql/mydata/mysql.sock --port=3306 mysql 6462 6003 0 11:01 pts/0 00:00:00 ps -ef mysql 6463 6003 0 11:01 pts/0 00:00:00 grep --color=auto mysql [mysql@mysql05 ~]$ kill -9 6022 6206
选择二的具体操作如下所示:
[mysql@mysql05 ~]$ mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 5.7.36-ndb-7.6.20-cluster-gpl MySQL Cluster Community Server (GPL) 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> shutdown;
然后我们就可以在管理节点上查看 SQL 节点的运行状态了。
ndb_mgm> show; Cluster Configuration [ndbd(NDB)] 2 node(s) id=2 @192.168.1.6 (mysql-5.7.36 ndb-7.6.20, Nodegroup: 0, *) id=3 @192.168.1.7 (mysql-5.7.36 ndb-7.6.20, Nodegroup: 0) [ndb_mgmd(MGM)] 1 node(s) id=1 @192.168.1.3 (mysql-5.7.36 ndb-7.6.20) [mysqld(API)] 2 node(s) id=4 (not connected, accepting connect from 192.168.1.4) id=5 (not connected, accepting connect from 192.168.1.5)
当所有的 SQL 节点均显示 not connected,说明 SQL 节点已经全部正常关闭掉了。
只有当所有的 SQL 节点服务都关闭掉之后,前端的应用程序无法连接到 MySQL Cluster 数据库环境。这时,我们才可以关闭数据节点上的服务了。
数据节点
关闭数据库节点上服务同样非常简单,直接将 ndbd 进行 kill 掉就可以。具体操作如下所示:
[mysql@mysql06 ~]$ ps -ef | grep ndbd mysql 4994 1 0 08:53 ? 00:00:04 ndbd mysql 4995 4994 2 08:53 ? 00:03:51 ndbd mysql 5280 4973 0 11:06 pts/0 00:00:00 grep --color=auto ndbd [mysql@mysql06 ~]$ kill -9 4994 4995
当然,如果数据节点上的 ndbd 进程太多,我们可以直接使用 pkill 命令进行操作。具体操如下所示:
[mysql@mysql06 ~]$ pkill ndbd
这样就将所有的 ndbd 进程全部 kill 掉了。上面两种操作方式在效果上是一样的。
关闭掉数据节点上的服务后,我们同样可以在管理节点上查看状态。
ndb_mgm> show; Cluster Configuration [ndbd(NDB)] 2 node(s) id=2 (not connected, accepting connect from 192.168.1.6) id=3 (not connected, accepting connect from 192.168.1.7) [ndb_mgmd(MGM)] 1 node(s) id=1 @192.168.1.3 (mysql-5.7.36 ndb-7.6.20) [mysqld(API)] 2 node(s) id=4 (not connected, accepting connect from 192.168.1.4) id=5 (not connected, accepting connect from 192.168.1.5)
可以看到,数据节点的状态也变为 not connected 了,说明数据节点也被关闭掉了。
管理节点
最后,我们要关闭 MySQL Cluster 集群环境的管理节点上的服务,我们可以对相应的服务进行进行 kill 操作,即执行如下的操作。
[mysql@mysql03 ~]$ ps -ef | grep ndb_mgmd mysql 2832 1 1 14:50 ? 00:02:57 ndb_mgmd -f /var/lib/mysql_cluster/config.ini mysql 3167 1814 0 17:28 pts/1 00:00:00 grep --color=auto ndb_mgmd [mysql@mysql03 ~]$ kill -9 2832
当然,我们还可以使用另一种方式来关闭管理节点的服务。即使用下面的命令进行关闭操作。
[mysql@mysql03 ~]$ ndb_mgm -e shutdown Connected to Management Server at: localhost:1186 1 NDB Cluster node(s) have shutdown. Disconnecting to allow management server to shutdown. [mysql@mysql03 ~]$ ps -ef | grep ndb mysql 3191 1814 0 17:32 pts/1 00:00:00 grep --color=auto ndb
至此,我们就完成了 MySQL Cluster 集群环境的正常关闭操作。这一小节内容很简单,我们就讲到这里,在下一小节中,我来讲解 MySQL Cluster 集群环境的日志管理方面的内容。