3.1引导MySQL路由器

下面是一个简单的例子,演示MySQL路由器如何通过引导部署到InnoDB集群中。有关其他信息,请参见——引导另一个引导选项

方法创建一个独立的MySQL Router实例——目录选项,启用套接字,使用——帐户自定义路由器的MySQL用户名,设置——account-create总是仅在帐户不存在的情况下引导;然后创造它。这个例子假设一个InnoDB集群名为myCluster已经存在。

$> mysqlrouter——bootstraproot@localhost: 3310——目录/ tmp / myrouter——conf-use-sockets帐户routerfriend请输入MySQL root密码:# Bootstrapping MySQL Router instance at '/tmp/myrouter'…Please enter MySQL password for routerfriend:-创建帐户(s) -验证帐户(使用它运行将由路由器运行的SQL查询)-在keyring中存储帐户-调整生成的文件的权限-创建配置/tmp/myrouter/mysqlrouter.conf # MySQL路由器配置为InnoDB集群'myCluster'当这个MySQL路由器已使用生成的配置启动$ mysqlrouter -c /tmp/myrouter/mysqlrouter.conf集群'myCluster'可以通过连接到:MySQL经典协议-读/写连接:localhost:6446, /tmp/myrouter/ MySQL。/tmp/myrouter/mysqlro. sock - Read/Only Connections: localhost:6447, /tmp/myrouter/mysqlro. sock/tmp/myrouter/mysqlx. sock ## MySQL X协议-读/写连接:localhost:6448, /tmp/myrouter/mysqlx. sock/tmp/myrouter/mysqlxro.sock - Read/Only Connections: localhost:6449, /tmp/myrouter/mysqlxro.sock

此时,引导过程已经创建了一个mysqlrouter.conf文件和所需的文件在指定的目录中,结果显示了如何启动这个MySQL Router实例。生成的MySQL路由器目录类似于:

$> ls -l | awk '{print $9}' data/ log/ mysqlrouter.conf mysqlrouter. log/ mysqlrouter.conf键run/ start.sh stop.sh

生成的MySQL路由器配置文件(mysqlrouter.conf)看起来类似于:

# MySQL路由器启动时自动生成的文件[DEFAULT] logging_folder=/tmp/myrouter/log runtime_folder=/tmp/myrouter/run data_folder=/tmp/myrouter/data keyring_path=/tmp/myrouter/data/keyring master_key_path=/tmp/myrouter/mysqlrouter. logKey connect_timeout=15 read_timeout=30 dynamic_state=/tmp/myrouter/data/state. Key. json [logger] level = INFO [metadata_cache:myCluster] cluster_type=gr router_id=1 user=routerfriend metadata_cluster=myCluster ttl=0.5 auth_cache_ttl=-1 auth_cache_refresh_interval=2 use_gr_notifications=0 [routing:myCluster_rw] bind_address=0.0.0.0 bind_port=6446 socket=/tmp/myrouter/mysql. json袜子目的地=元数据缓存:/ / myCluster / ?role=PRIMARY routing_strategy=first-available protocol=classic [routing:myCluster_ro] bind_address=0.0.0.0 bind_port=6447 socket=/tmp/myrouter/mysqlro. role=PRIMARY routing_strategy=first-available protocol=classic袜子目的地=元数据缓存:/ / myCluster / ?role=SECONDARY routing_strategy=round-robin-with-fallback protocol=classic [routing:myCluster_x_rw] bind_address=0.0.0.0 bind_port=6448 socket=/tmp/myrouter/mysqlx. role=SECONDARY routing_strategy=round-robin-with-fallback protocol=classic .]袜子目的地=元数据缓存:/ / myCluster / ?role=PRIMARY routing_strategy=first-available protocol=x [routing:myCluster_x_ro] bind_address=0.0.0.0 bind_port=6449 socket=/tmp/myrouter/mysqlx. role=PRIMARY routing_strategy=first-available protocol=x袜子目的地=元数据缓存:/ / myCluster / ?role=SECONDARY routing_strategy=round-robin-with-fallback协议=x

在本例中,MySQL Router配置了四个端口和四个套接字。默认情况下添加端口,通过传入添加套接字——conf-use-sockets.名为“myCluster”的InnoDB集群是元数据的来源目的地正在使用InnoDB集群元数据缓存动态配置主机信息。相关的命令行选项:

为了演示MySQL路由器的行为,下面的客户端(应用程序)连接到端口6446,但连接到端口3310上的MySQL实例。

$> -u root -h 127.0.0.1 -P 6446 -P…Mysql > select @@port;+--------+ | @@ 港口  | +--------+ | 3310年  | +--------+ 1行集(0.00秒)

有关其他示例,请参见建立一个MySQL服务器沙箱而且部署生产InnoDB集群