下面是一个简单的例子,演示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集群元数据缓存动态配置主机信息。相关的命令行选项:
——conf-use-sockets
:可选地为所有四种连接类型启用UNIX域套接字,如示例所示。——conf-skip-tcp
:可选禁用TCP端口,一个传入的选项——conf-use-sockets
如果你只想要套接字。——conf-base-port
:可选更改端口范围,不使用默认端口。这将为经典的读写(PRIMARY)连接设置端口,默认为6446.——conf-bind-address
:可选地修改每条路由的bind_address值。
为了演示MySQL路由器的行为,下面的客户端(应用程序)连接到端口6446,但连接到端口3310上的MySQL实例。
$> -u root -h 127.0.0.1 -P 6446 -P…Mysql > select @@port;+--------+ | @@ 港口 | +--------+ | 3310年 | +--------+ 1行集(0.00秒)
有关其他示例,请参见建立一个MySQL服务器沙箱而且部署生产InnoDB集群.