当“只读分析引擎”开启完成,即可通过任意 MySQL 数据库客户端/JDBC/ODBC 访问至只读分析引擎中。本文将详细列举几种常见的访问方法。
通过只读分析引擎的地址进行访问
您可选择如下任意一种连接方法,通过只读分析引擎的地址进行访问。
连接方法 | 说明 |
通过 DMC 连接集群,简单易用,DMC 提供库表级操作、实时监控、实例会话管理、SQL 窗口、数据管理为一体的数据库管理服务。 说明: | |
使用 Linux 云服务器的开发者,可以参考此连接方法。 | |
使用 Windows 云服务器的开发者,可以参考此连接方法。 |
通过云联网地址访问数据库
通过数据库代理转发 SQL 的方式进行访问
您可以使用任意 MySQL 数据库客户端,通过数据库代理访问至数据库代理中所加入的只读分析引擎。
您可以参考文档 开通数据库代理 开启分析引擎代理。目前仅1.3.15及最新的数据库代理支持添加只读分析引擎。如您的数据库代理内核版本低于1.3.15,则无法将只读分析引擎添加至此数据库代理。如需要添加,请参考 升级数据库代理内核小版本,将数据库代理版本升级至1.3.15或最新的版本。
在1.4.4版本之前的数据库代理仅支持通过 Hint 语法使用 中的
/* to server 实例 ID */
语法将 SQL 转发至此数据库代理中的只读分析引擎中执行。在1.4.4版本以及之后的数据库代理支持通过
/*to ap*/
的 Hint 语法将 SQL 转发至此数据库代理中的只读分析引擎中执行。如果存在多个只读分析引擎实例,则会根据只读分析引擎的权重进行 SQL 的负载均衡。注意:
如果
/*to server 实例 ID*/
语法和/*to ap*/
语法中指定的实例 ID 不存在或只读分析引擎不存在。SQL 将默认转发至当前数据库代理中的存在的只读实例或者读写实例中执行。请注意,如果使用 MySQL 客户端访问至数据库代理。请在连接参数中添加“-c”参数,否则 SQL 中添加的 hint 无法生效。
# mysql -h172.16.0.12 -P3306 -utest -p -c -Amysql> /* to server libradb-ins-hw0af2zi */ show databases;+---------------------+| Database |+---------------------+| INFORMATION_SCHEMA || Test1 || Test2 || __cdb_recycle_bin__ || haha || libra_system || test |+---------------------+7 rows in set (0.01 sec)
在 1.4.4 即以后的版本中支持使用/*to ap*/语法。
mysql> select /* to ap */ * from haha.t;+----+------+| id | haha |+----+------+| 1 | 1 || 2 | 2 |+----+------+2 rows in set (0.01 sec)
支持在 SQL 语句中间添加 hint 的执行方法。
mysql> select /* to server libradb-ins-hw0af2zi */ * from haha.t;+----+------+| id | haha |+----+------+| 1 | 1 || 2 | 2 |+----+------+2 rows in set (0.01 sec)
也支持在添加指定路由 hint 的语法同时添加 SQL 执行计划的语法。
mysql> select /* to server libradb-ins-hw0af2zi */ /*+ set_var(libra_enable_late_materialization=1) */ * from haha.t;+----+------+| id | haha |+----+------+| 1 | 1 || 2 | 2 |+----+------+2 rows in set (0.01 sec)