OBProxy 可以将用户发起的数据访问请求转发到正确的 OBServer 上,转发到后端 OBServer 的请求返回数据时,依然要通过 OBProxy 回发给客户端。本文主要介绍通过如何使用 RPM 包安装 OBProxy。
说明
OBProxy 在任何一台机器上部署后,通过向外暴露一个 ip:port 来提供 OceanBase 的代理服务。用户可以像访问 MySQL 数据库一样通过该 ip:port 访问 OceanBase 数据库,一般推荐部署在 OBServer 节点上。
建议一台机器上只部署一个 OBProxy 服务,并且使用约定的 2883 端口。当同一台机器上部署多个OBProxy 服务时,需要指定不同端口和不同的配置文件路径予以区分,端口可以自定义为 3306、1521 或者其他端口。
其中
$rpm_dir 表示存放 RPM 包的目录,
$rpm_name 表示 RPM 包的名称。
cd $rpm_dir sudo rpm -ivh $rpm_name
示例如下:
[admin@test rpm]$ sudo rpm -ivh obproxy-ce-3.2.3-2.el7.x86_64.rpm Preparing... ################################[100%] Updating / installing... 1:obproxy-ce-3.2.3-2.el7 ################################[100%]
OBProxy 需要跟后端 OBServer 节点保持通信,所以需要提前在 OceanBase 集群的 sys 租户下为 OBProxy 创建连接用户(proxyro)和密码。后续在启动 OBProxy 时可通过设置 proxy 启动参数的方式来告知 proxy。
说明
proxyro 用户是 OBProxy 访问 OceanBase 集群的用户。一个 OceanBase 集群对应一个 proxyro 账号。
您可参考如下步骤查看集群中是否存在 proxyro 用户:
通过 IP 直连登录到集群。
obclient -h172.xx.xxx.25 -uroot@sys -P2881 -pxxxxx
执行以下命令查看 sys 租户下的用户。
obclient> select user,password from mysql.user; +------------+--------- -----------+ | user | password | +------------+---------------------+ | root | | | ORAAUDITOR | *975xxxxxxxxxxxxx23 | | proxyro | *e32xxxxxxxxxxxxx70 | +------------+---------------------+ 3 rows in set (0.008 sec)
若输出结果显示已有 proxyro 用户,可直接执行 启动 OBProxy。若输出结果中无 proxyro 用户,可参考下述命令创建 proxyro 用户。
创建 proxyro 用户。
示例如下:
$ obclient -h172.xx.xxx.25 -uroot@sys -P2881 -pxxxxx obclient> CREATE USER proxyro IDENTIFIED BY '******'; Query OK, 0 rows affected obclient> GRANT SELECT ON *.* TO proxyro; Query OK, 0 rows affected obclient> SHOW GRANTS FOR proxyro; +----------------------------------+ | Grants for proxyro@% | +----------------------------------+ | GRANT SELECT ON *.* TO 'proxyro' | +----------------------------------+ 1 row in set
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70026121/viewspace-2932585/ ,如需转载,请注明出处,否则将追究法律责任。