用户购买DRDS实例后,可以使用Navicat等客户端连接DRDS实例,也可以使用CLI或JDBC驱动连接DRDS实例中的目标逻辑库。
本章节指导用户如何连接DRDS实例或逻辑库。
准备工作
连接DRDS实例或逻辑库前,需要获取DRDS实例或逻辑库的连接地址。
获取DRDS逻辑库连接地址
步骤 1 登录分布式关系型数据库控制台。
步骤 2 在实例管理界面单击DRDS实例名称,进入实例基本信息页。
步骤 3 在左侧导航栏选择“逻辑库管理”,单击“连接地址”列的“查看”。
您也可以单击逻辑库名称进入逻辑库基本信息页面,在“连接地址”页签下查看“命令行连接地址”和“jdbc连接地址”。
说明
如果DRDS实例有多个节点,页面内网地址只提供了一个IP地址,这是因为DRDS集群支持了负载均衡。可通过连接该地址连接到DRDS集群,达到负载均衡效果。
有部分历史实例的内网地址提供了多个IP地址,是因为DRDS集群未支持负载均衡,可通过jdbc连接串达到负载均衡效果。
如果创建了只读组,每个组都会分配一个负载均衡连接地址,进行业务隔离。
----结束
连接方法概述
方法一:Navicat客户端连接DRDS实例。
方法二:MySQL命令行连接DRDS逻辑库。
方法三:JDBC驱动连接DRDS逻辑库。
说明
为保证系统安全,请使用与DRDS实例处于同一VPC的弹性云主机。
弹性云主机已安装MySQL客户端或已配置MySQL连接驱动。
连接DRDS实例前,需要先在工具中配置DRDS实例信息。
Navicat客户端连接DRDS实例
步骤 1 登录分布式数据库中间件服务,单击需要连接的DRDS实例名称,进入实例基本信息页面。
步骤 2 在“实例信息”模块的弹性公网IP单击“绑定”。绑定已申请的公网IP。
步骤 3 在DRDS管理控制台左侧选择虚拟私有云图标。单击“访问控制>安全组”。
步骤 4 在安全组界面,单击操作列的“配置规则”,进入安全组详情界面。在安全组详情界面,单击“添加规则”,弹出添加规则窗口。根据界面提示配置安全组规则,设置完成后单击“确定”即可。
说明
绑定弹性公网IP后,建议您在内网安全组中设置严格的出入规则,以加强数据库安全性。
步骤 5 打开Navicat客户端,单击“连接”。在新建连接窗口中填写主机IP地址(弹性公网IP地址)、用户名和密码(DRDS账号、密码)。
说明
Navicat客户端推荐使用版本为Navicat12。
步骤 6 单击“连接测试”,如果显示连接成功,单击“确定”,等待1-2分钟即可连接成功。连接失败会直接弹出失败原因,请修改后重试。
----结束
说明
通过其他可视化的MySQL工具(例如 Workbench)连接DRDS实例的操作与此章基本一致,不做详细描述。
MySQL命令行连接DRDS逻辑库
步骤 1 登录弹性云主机,打开命令行工具,输入以下命令。
mysql -h ${DDM_SERVER_ADDRESS} -P${DDM_SERVER_PORT} -u${DDM_USER} -p [-D${DDM_DBNAME}] [--default-character-set=utf8][--default_auth=mysql_native_password]表 参数说明
| 参数示例 | 参数填写说明 | 参数举例 |
|---|---|---|
| DDM_SERVER_ADDRESS | DRDS实例所在IP地址。 | 192.168.0.200 |
| DDM_SERVER_PORT | DRDS实例连接端口。 | 5066 |
| DDM_USER | DRDS实例账号。 | dbuser01 |
| DDM_DBNAME | DRDS实例逻辑库名,选填。 | - |
| default-character-set=utf8 | 指定字符编码为UTF-8,选填。 当MySQL连接编码和实际编码不一致,导致DRDS解析出现乱码时请配置该参数。 | - |
| default_auth=mysql_native_password | 默认使用密码认证插件,选填。 | - |
| ssl | 使用SSL加密连接,需要先开启SSL,选填。 | - |
说明
如果您使用了MySQL 8.0的客户端,需要增加default_auth=mysql_native_password参数。
如果您开启了SSL特性,默认使用加密连接。
步骤 2 下面为Windows服务器命令行窗口中使用表中举例参数MySQL命令连接服务器的回显情况。
C:\Users\testDDM>mysql -h192.168.0.200 -P5066 -Ddb_5133 -udbuser01 -p
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ;or \g.
Your MySQL connection id is 5
Server version: 5.6.29
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>----结束
JDBC驱动连接DRDS逻辑库
说明
使用以下操作步骤前,确保已安装JDBC驱动,建议JDBC驱动版本选择5.1.49及以上版本,JDBC驱动下载地址:https://dev.mysql.com/doc/index-connectors.html。
步骤 1 加载驱动程序。
Class.forname(com.mysql.jdbc.Driver);步骤 2 打开数据库连接。
String username = "EXAMPLE_USERNAME_ENV" ;
String password = "EXAMPLE_PASSWORD_ENV" ;
String url = "jdbc:mysql://ip:port/db_name";
Connection con = DriverManager.getConnection(url , username , password);说明
认证用的用户名和密码直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中存放(密码应密文存放,使用时解密),确保安全。
本示例以用户名和密码保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量(环境变量名称请根据自身情况进行设置)EXAMPLE_USERNAME_ENV和EXAMPLE_PASSWORD_ENV。
上述样例中URL的参数取值可参见下表设置。
表 URL参数说明
| 参数名称 | 参数说明 | 推荐取值 |
|---|---|---|
| ip:port | 连接地址和端口,用于连接DDM。 | 192.168.0.200:5066 获取方法:参考获取DRDS逻辑库连接地址获取jdbc连接地址和端口信息。 |
| db_name | 连接逻辑库名称。 | db_5505 获取方法:在DRDS管理控制台,单击目标实例名称,在左侧导航栏中选择“逻辑库管理”,查看逻辑库名称。 |
步骤 3 创建Statement对象。
Statement stmt = con.createStatement();步骤 4 执行SQL语句。
ResultSet rs = stmt.executeQuery("select now() as Systemtime");
con.close();步骤 5 (可选)优化代码。
loadBalanceAutoCommitStatementThreshold=5&loadBalanceHostRemovalGracePeriod=15000&loadBalanceBlacklistTimeout=60000&loadBalancePingTimeout=5000&retriesAllDown=10&connectTimeout=10000&useSSL=true";说明
loadBalanceAutoCommitStatementThreshold和retriesAllDown参数必须按照以上样例进行配置,否则在连接切换时可能进入死循环,导致栈溢出。
其余参数及相关配置说明请参见下表。
表 参数说明
| 参数名称 | 参数说明 | 推荐取值 |
|---|---|---|
| loadBalanceAutoCommitStatementThreshold | 表示连接上执行多少个语句后会重新选择连接。
关闭自动提交时(autocommit=false)会等待事务完成再考虑是否重新选择连接。 | 5 |
| loadBalanceHostRemovalGracePeriod | 设置宽限期,以等待主机从负载均衡连接中移除,当主机当前是活动主机时释放主机。 | 15000 |
| loadBalanceBlacklistTimeout | 通过控制服务器在全局黑名单中的存留时间,检查不可用服务器之间的时间间隔(以毫秒为单位)。 | 60000 |
| loadBalancePingTimeout | 使用负载均衡连接时,等待每个负载均衡连接ping响应的毫秒数。 | 5000 |
| retriesAllDown | 当所有的连接地址都无法连接时,轮询重试的最大次数。 重试次数达到阈值仍然无法获取有效连接,将会抛出SQLException。 | 10 |
| connectTimeout | 和数据库服务器建立socket连接时的超时。 单位:毫秒,0表示永不超时,适用于JDK 1.4及更高版本。 | 10000 |
| socketTimeout | socket操作(读写)超时。 单位:毫秒, 0表示永不超时。 | 根据业务实际情况合理配置。 |
| useSSL | 使用SSL加密连接访问DRDS。 | true |
----结束