活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      文档中心

      云数据库TaurusDB

      云数据库TaurusDB

        • 产品动态
        • 产品介绍
        • 产品定义
        • 常用概念
        • 产品优势和价值
        • 实例说明
        • 权限管理
        • 使用限制
        • 与其他服务的关系
        • 计费说明
        • 计费项
        • 计费模式
        • 产品价格
        • 变更配置
        • 续费
        • 到期与欠费
        • 快速入门
        • 创建实例
        • 连接实例
        • 实例连接方式简介
        • 通过DAS连接TaurusDB实例(推荐)
        • 通过内网连接TaurusDB实例
        • 内网连接实例流程
        • 设置安全组规则
        • 通过内网连接TaurusDB实例
        • 通过公网连接TaurusDB实例
        • 公网连接实例流程
        • 绑定弹性IP
        • 设置安全组规则
        • 通过公网连接TaurusDB实例
        • 用户指南
        • 计费管理
        • 续费
        • 包周期实例转按需
        • 按需实例转包周期
        • 退订包周期实例
        • 数据迁移
        • 实例生命周期管理
        • 变更实例
        • 变更实例的CPU和内存规格
        • 磁盘容量变更(包年包月)
        • 设置可维护时间段
        • 自定义列表项
        • 升级内核小版本
        • 只读节点
        • 只读节点简介
        • 创建只读节点
        • 管理只读节点
        • 只读节点升主节点
        • 删除只读节点
        • 数据安全性
        • 重置管理员密码
        • 修改实例内网安全组
        • 数据库安全设置
        • 数据备份
        • 备份类型
        • 设置自动备份策略
        • 创建手动备份
        • 导出备份信息
        • 删除手动备份
        • 数据恢复
        • 恢复方案概览
        • 将数据库实例恢复到指定时间点
        • 将备份恢复至实例
        • 连接管理
        • 绑定和解绑弹性IP
        • 修改数据库端口
        • 参数模板管理
        • 创建参数模板
        • 编辑参数模板
        • 导出参数
        • 比较参数模板
        • 查看参数修改历史
        • 复制参数模板
        • 重置参数模板
        • 应用参数模板
        • 查看参数模板应用记录
        • 修改参数模板描述
        • 删除参数模板
        • 监控指标与告警
        • 支持的监控指标
        • 查看监控指标
        • 设置告警规则
        • 设置秒级监控
        • 日志管理
        • 任务中心
        • 标签
        • 最佳实践
        • TaurusDB读写分离最佳实践
        • 常见问题
        • 产品咨询类
        • 数据库连接类
        • 连接说明类
        • 如何通过JDBC连接TaurusDB数据库
        • 绑定公网IP后无法ping通的解决方案
        • 测试连通性失败,如何排查
        • 数据库迁移类
        • 数据库权限类
        • 数据库性能类
        • 性能说明类
        • 联合索引设置不当导致慢SQL的解决办法
        • 长事务产生大量临时表导致内存超限的解决办法
        • 持锁长事务导致后续业务报等锁超时的解决办法
        • 数据库基本使用
        • 基本使用介绍类
        • 使用LOAD DATA导入本地数据
        • 备份与恢复类
        • 数据库参数修改类
        • 参数修改说明类
        • TaurusDB密码过期策略
        • 如何修改TaurusDB数据库字符集
        • 使用utf8mb4字符集存储emoji表情到TaurusDB实例
        • 网络安全类
        • 安全说明类
        • 将根证书导入Windows/Linux操作系统
        • 日志管理类
        • 版本升级类
        • 复杂操作类
        • TaurusDB数据库连接数满的排查思路
        • TaurusDB数据库实例支持的最大数据连接数是多少
        • 如何安装客户端
        • 故障排除
        • 备份恢复
        • 连接类
        • SQL类
        • 参数类
        • 性能资源类
        • 基本使用类
        • 文档下载
        • 服务协议
        • 服务等级协议
        • 服务协议
          无相关产品

          本页目录

          帮助中心云数据库TaurusDB常见问题数据库连接类如何通过JDBC连接TaurusDB数据库
          如何通过JDBC连接TaurusDB数据库
          更新时间 2025-03-27 10:41:18
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          最近更新时间: 2025-03-27 10:41:18
          分享文章
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          本节介绍了JDBC连接的问题与处理方法。

          通过JDBC连接实例的方式有无需下载SSL证书连接和用户下载SSL证书连接两种,其中使用SSL证书连接通过了加密功能,具有更高的安全性。TaurusDB新实例默认开启SSL数据加密,SSL连接实现了数据加密功能,但同时会增加网络连接响应时间和CPU消耗,请评估对业务的性能影响,根据需要进行设置。

          前提条件

          用户需要具备以下技能:

          • 熟悉计算机基础知识。
          • 了解java编程语言。
          • 了解JDBC基础知识。

          使用SSL证书连接

          使用SSL证书连接实例,即通过证书校验并连接数据库。

          说明

          以下提供的方式不适用于数据库用户的ssl_type为x509的认证方式。

          执行命令查看当前用户的ssl_type值:

          select ssl_type from mysql.user where user = 'xxx';

          步骤 1 下载CA证书或捆绑包。

          1. 在“实例管理”页面,单击实例名称进入“基本信息”页面。
          2. 在“数据库信息”区域,单击“SSL”开关右侧的。

          步骤 2 使用keytool工具通过CA证书生成truststore文件。

          <keytool工具的安装路径> ./keytool.exe -importcert -alias <MySQLCACert> -­file <ca.pem> -keystore <truststore_file> -storepass <password>
          

          表 变量说明

          变量 说明
          <keytool工具的安装路径> 请替换为JDK或JRE安装路径的bin目录,例如C:\Program Files (x86)\Java\jdk­11.0.7\bin。
          <MySQLCACert> 请设置truststore文件的名称。建议设置为具有业务意义的名称,便于后续识别。
          <ca.pem> 请替换为步骤1中下载解压后CA证书的名称,例如ca.pem。
          <truststore_file> 请设置truststore文件的存放路径。
          <password> 请设置truststore文件的密码。

          代码示例(使用JDK安装路径下的keytool工具生成truststore文件):

          Owner:  CN=MySQL_Server_8.0.22_Auto_Generated_CA_Certificate 
          Issuer: CN=MySQL_Server_8.0.22_Auto_Generated_CA_Certificate  
          Serial number: 1 
          Valid from: Thu Feb 16 11:42:43 EST 2017 until: Sun Feb 14 11:42:43 EST 2027  
          Certificate fingerprints: 
               MD5: 18:87:97:37:EA:CB:0B:5A:24:AB:27:76:45:A4:78:C1 
               SHA1: 2B:0D:D9:69:2C:99:BF:1E:2A:25:4E:8D:2D:38:B8:70:66:47:FA:ED  
               SHA256:C3:29:67:1B:E5:37:06:F7:A9:93:DF:C7:B3:27:5E:09:C7:FD:EE:2D:18:86:F4:9C:40:D8:26:CB:DA:95: A0:24 
               Signature algorithm name: SHA256withRSA Subject Public Key Algorithm: 2048-bit RSA key  
               Version: 1 
               Trust this certificate? [no]: y 
               Certificate was added to keystore
          

          步骤 3 通过JDBC连接TaurusDB数据库,代码中的JDBC链接格式如下:

          jdbc:mysql://<instance_ip>:<instance_port>/<database_name>?  
          requireSSL=<value1>&useSSL=<value2>&verifyServerCertificate=<value3>&trustCertificateKeyStoreUrl=file:  
          <truststore_file>&trustCertificateKeyStorePassword=<password>
          

          表 参数说明

          参数 说明
          <instance_ip> 请替换为TaurusDB实例的IP地址。
          说明
          如果通过弹性云主机连接,“instance_ip”是实例的“读写内网地址”。您可以在该实例“基本信息”页面的“网络信息”区域查看。
          如果通过公网连接,“instance_ip”为该实例已绑定的“弹性公网IP”,即读写公网地址。您可以在该实例““基本信息”页面的“网络信息”区域查看。
          <instance_port> 请替换为实例的数据库端口,默认为3306。说明您可以在该实例“基本信息”页面的“网络信息”区域查看。
          <database_name> 请替换为连接实例使用的数据库名,默认为mysql。
          <value1> requireSSL的值,用于设置服务端是否支持SSL连接。
          取值如下:
          true:支持。
          false:不支持。
          说明
          requireSSL与其他连接参数、sslMode之间的关系请参考下表。
          <value2> useSSL的值,用于设置客户端是否使用SSL连接服务端。
          取值如下:
          true:使用。
          false:不使用。
          说明
          useSSL与其他连接参数、sslMode之间的关系请参考下表。
          <value3> verifyServerCertificate的值,客户端是否校验服务端的证书。
          取值如下:
          true:校验。
          false:不校验。
          说明
          verifyServerCertificate与其他连接参数、sslMode之间的关系请参考下表。
          <truststore_file> 请替换为步骤2中为truststore文件设置的存储路径。
          password> 请替换为步骤2中为truststore文件设置的密码。

          表 连接参数与SSL Mode的关系说明

          useSSL requireSSL verifyServerCertificate sslMode
          false 不涉及 不涉及 DISABLED
          true false false PREFERRED
          true true false REQUIRED
          true 不涉及 true VERIFY_CA

          代码示例(连接TaurusDB数据库的java代码):

          import java.sql.Connection;  
          import java.sql.DriverManager;  
          import java.sql.ResultSet;  
          import java.sql.Statement; 
          import java.sql.SQLException;  
            
          public class JDBCTest {  
              static final String USER = "xxx";  
              static final String PASS = "xxx"; 
           
              public static void main(String[] args) { 
                  Connection conn = null;  
                  Statement stmt = null; 
           
                  String url = "jdbc:mysql://<instance_ip>:<instance_port>/<database_name>? 
          requireSSL=true&useSSL=true&verifyServerCertificate=true&trustCertificateKeyStoreUrl=file: 
          <truststore_file>&trustCertificateKeyStorePassword=<password>"; 
            
                  try {  
                      Class.forName("com.mysql.cj.jdbc.Driver"); 
                      conn = DriverManager.getConnection(url, USER, PASS); 
            
                      stmt = conn.createStatement();  
                      String sql = "show status like 'ssl%'"; 
                      ResultSet rs = stmt.executeQuery(sql);  
           
                      int columns = rs.getMetaData().getColumnCount(); 
                      for (int i = 1; i <= columns; i++) { 
                          System.out.print(rs.getMetaData().getColumnName(i)); 
                          System.out.print("\t"); 
                      } 
           
                      while (rs.next()) {  
                          System.out.println();  
                          for (int i = 1; i <= columns; i++) { 
                              System.out.print(rs.getObject(i)); 
                              System.out.print("\t"); 
                          }  
                      } 
                      rs.close();  
                      stmt.close();  
                      conn.close();  
                  } catch (SQLException se) {  
                      se.printStackTrace();  
                  } catch (Exception e) {  
                      e.printStackTrace();  
                  } finally {  
                      // release resource ....  
                  }  
              }  
          }
          

          无证书连接

          说明

          该方式不对服务端进行证书校验,用户无需下载SSL证书。

          步骤 1 通过JDBC连接TaurusDB数据库实例,代码中的JDBC链接格式如下:

          jdbc:mysql://<instance_ip>:<instance_port>/<database_name>?useSSL=false
          

          表 变量说明

          变量 说明
          <instance_ip> 请替换为TaurusDB实例的IP地址。
          说明
          如果通过弹性云主机连接,“instance_ip”是实例的“读写内网地址”。您可以在该实例“基本信息”页面的“网络信息”区域查看。
          如果通过公网连接,“instance_ip”为该实例已绑定的“弹性IP”,即读写公网地址。您可以在该实例“基本信息”页面的“网络信息”区域查看。
          <instance_port> 请替换为实例的数据库端口,默认为3306。
          说明
          您可以在该实例“基本信息”页面的“网络信息”区域查看。
          <database_name> 请替换为连接实例使用的数据库名,默认为mysql。

          代码示例(连接TaurusDB数据库的java代码):

          import java.sql.Connection; 
          import java.sql.DriverManager; 
          import java.sql.ResultSet; 
          import java.sql.Statement; 
           
          public class MyConnTest { 
          	final public static void main(String[] args) { 
          		Connection conn = null; 
          		// set sslmode here. 
          		// no ssl certificate, so do not specify path. 
          		String url = "jdbc:mysql://192.168.0.225:3306/my_db_test?useSSL=false"; 
          		try { 
          			Class.forName("com.mysql.jdbc.Driver"); 
          			conn = DriverManager.getConnection(url, "root", "password"); 
          			System.out.println("Database connected"); 
           
          			Statement stmt = conn.createStatement(); 
          			ResultSet rs = stmt.executeQuery("SELECT * FROM mytable WHERE columnfoo = 500"); 
          			while (rs.next()) { 
          				System.out.println(rs.getString(1)); 
          			} 
          			rs.close(); 
          			stmt.close(); 
          			conn.close(); 
          		} catch (Exception e) { 
          			e.printStackTrace(); 
          			System.out.println("Test failed"); 
          		} finally { 
          			// release resource .... 
          		} 
          	} 
          }
          

          相关问题

          • 问题描述当您使用8.0及以上版本的JDK通过SSL证书模式连接TaurusDB时,报如下类似错误:
            javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or 
            cipher suites are inappropriate) 
                at sun.security.ssl.HandshakeContext.<init>(HandshakeContext.java:171) ~[na:1.8.0_292] 
                at sun.security.ssl.ClientHandshakeContext.<init>(ClientHandshakeContext.java:98) ~ 
            [na:1.8.0_292] 
                at sun.security.ssl.TransportContext.kickstart(TransportContext.java:220) ~ 
            [na:1.8.0_292] 
                at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:428) ~ 
            [na:1.8.0_292] 
                at 
            com.mysql.cj.protocol.ExportControlled.performTlsHandshake(ExportControlled.java:316) ~ 
            [mysql-connector-java-8.0.17.jar:8.0.17] 
                at 
            com.mysql.cj.protocol.StandardSocketFactory.performTlsHandshake(StandardSocketFactory.java 
            :188) ~[mysql-connector-java8.0.17.jar:8.0.17] 
                at 
            com.mysql.cj.protocol.a.NativeSocketConnection.performTlsHandshake(NativeSocketConnection. 
            java:99) ~[mysql-connector-java8.0.17.jar:8.0.17] 
                at 
            com.mysql.cj.protocol.a.NativeProtocol.negotiateSSLConnection(NativeProtocol.java:331) ~ 
            [mysql-connector-java8.0.17.jar:8.0.17] 
            ... 68 common frames omitted
            
          • 解决方法您可以在步骤3中的代码链路中,根据客户端使用的Jar包指定对应参数值进行连接。示例如下:
            • mysql-connector-java-5.1. xx .jar
              jdbc:mysql://<instance_ip>:<instance_port>/<database_name>?  
               requireSSL=true&useSSL=true&verifyServerCertificate=true&trustCertificateKeyStoreUrl=file:  
               <truststore_file>&trustCertificateKeyStorePassword=<password>& enabledTLSProtocols=TLSv1.2
              
            • mysql-connector-java-8.0. xx .jar
              jdbc:mysql://<instance_ip>:<instance_port>/<database_name>?  
               requireSSL=true&useSSL=true&verifyServerCertificate=true&trustCertificateKeyStoreUrl=file:  
               <truststore_file>&trustCertificateKeyStorePassword=<password>& tlsVersions =TLSv1.2
              
          文档反馈

          建议您登录后反馈,可在建议与反馈里查看问题处理进度

          鼠标选中文档,精准反馈问题

          选中存在疑惑的内容,即可快速反馈问题,我们会跟进处理

          知道了

          上一篇 :  连接说明类
          下一篇 :  绑定公网IP后无法ping通的解决方案
          搜索 关闭
          ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
          公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
          备案 京公网安备11010802043424号 京ICP备 2021034386号
          ©2025天翼云科技有限公司版权所有
          京ICP备 2021034386号
          备案 京公网安备11010802043424号
          增值电信业务经营许可证A2.B1.B2-20090001
          用户协议 隐私政策 法律声明