MySQL路由器8.0  / 第 5 章 MySQL Router 应用  /  5.1 启动 MySQL 路由器

5.1 启动 MySQL 路由器

MySQL Router 需要一个配置文件。尽管 Router 会在预先确定的默认路径列表中搜索配置文件,但通常通过传入带--config选项的配置文件来启动 Router。

将 MySQL Router 配置为在主机重启时自动启动的过程类似于 MySQL 服务器所需的步骤,这在自动启动和停止 MySQL中有所描述。

例如,当使用systemd时:

$> sudo systemctl start mysqlrouter.service
$> sudo systemctl enable mysqlrouter.service

示例日志输出

启动 MySQL Router 会生成几个日志条目,例如当连接到沙盒 InnoDB 集群时:

$> mysqlrouter --config=/path/to/file/my_router.conf
^C

$> less /path/to/log/mysqlrouter.log
2019-04-07 16:30:49 INFO    [0x7000022fc000] [routing:devCluster_default_ro] started: listening on 0.0.0.0:6447; read-only
2019-04-07 16:30:49 INFO    [0x70000237f000] [routing:devCluster_default_rw] started: listening on 0.0.0.0:6446; read-write
2019-04-07 16:30:49 INFO    [0x700002402000] [routing:devCluster_default_x_ro] started: listening on 0.0.0.0:64470; read-only
2019-04-07 16:30:49 INFO    [0x700002485000] [routing:devCluster_default_x_rw] started: listening on 0.0.0.0:64460; read-write
2019-04-07 16:30:49 INFO    [0x700002279000] Starting Metadata Cache
2019-04-07 16:30:49 INFO    [0x700002279000] Connections using ssl_mode 'PREFERRED'
2019-04-07 16:30:49 INFO    [0x700002279000] Connected with metadata server running on 127.0.0.1:3310
2019-04-07 16:30:49 INFO    [0x700002279000] Changes detected in cluster 'devCluster' after metadata refresh
2019-04-07 16:30:49 INFO    [0x700002279000] Metadata for cluster 'devCluster' has 1 replicasets:
2019-04-07 16:30:49 INFO    [0x700002279000] 'default' (3 members, single-master)
2019-04-07 16:30:49 INFO    [0x700002279000]     localhost:3310 / 33100 - role=HA mode=RW
2019-04-07 16:30:49 INFO    [0x700002279000]     localhost:3320 / 33200 - role=HA mode=RO
2019-04-07 16:30:49 INFO    [0x700002279000]     localhost:3330 / 33300 - role=HA mode=RO
2019-04-07 16:30:49 INFO    [0x700002714000] Connected with metadata server running on 127.0.0.1:3310

日志显示 MySQL Router 正在侦听四个端口,按名称、InnoDB 集群信息等列出活动的路由策略。

例如,第一行列出名为 的活跃路由策略routing:devCluster_default_ro,正在监听端口6447,其模式为 read-only。MySQL Router 配置文件中的相应部分类似于:

[routing:devCluster_default_ro]
bind_address=0.0.0.0
bind_port=6447
destinations=metadata-cache://devCluster/default?role=SECONDARY
mode=read-only
protocol=classic

查看名称、端口和模式是如何直接从配置文件中获取的。这样,您可以快速确定哪些路由策略处于活动状态。如果运行多个 MySQL Router 实例,或者加载多个配置文件,这可能特别有用。

在 Windows 上,MySQL Router 可以安装、删除或启动该服务。默认情况下,服务名称是MySQLRouter。有关其他信息,请参阅 --serviceWindows 服务的 和相关命令行选项。

示例启动和停止脚本

使用该选项引导 MySQL Router --directory生成 bash 脚本来启动和停止 MySQL Router,类似于以下内容:

// *** start.sh *********************** //

#!/bin/bash
basedir=/opt/myrouter
ROUTER_PID=$basedir/mysqlrouter.pid /usr/bin/mysqlrouter -c $basedir/mysqlrouter.conf &
disown %-

// *** stop.sh *********************** //

if [ -f /opt/myrouter/mysqlrouter.pid ]; then
  kill -HUP `cat /opt/myrouter/mysqlrouter.pid`
  rm -f /opt/myrouter/mysqlrouter.pid
fi