- 文档首页
云数据库 MySQL 版
用户指南
连接管理
连接实例
通用客户端程序连接实例
通用客户端程序连接实例
您可以选用任何兼容 MySQL 协议的客户端程序进行连接。本文介绍通过客户端程序连接 MySQL 实例的相关操作。
云数据库 MySQL 版支持多种类型的连接地址,推荐使用私网地址进行连接。但如果您的客户端程序部署在本地,无法和 MySQL 实例处于同一个私有网络(VPC)下,则需要使用公网地址连接实例。
云数据库 MySQL 版实例默认使用 3306 端口号。MySQL 实例的连接地址前缀和端口号支持修改,如有需要,可参考修改连接地址前缀和端口进行操作。 根据客户端程序的部署位置,完成相应的操作以连接实例。
- 确保 ECS 实例与 MySQL 实例属于同一 VPC 网络中。
- 将 ECS 实例的私网 IPv4 地址添加到 MySQL 实例的白名单中。设置白名单的方法,请参见设置白名单。
- 为 MySQL 实例申请公网地址。关于申请公网地址的详细信息,请参见开启或关闭公网访问。
- 将本地设备的公网 IPv4 地址添加到 MySQL 实例的 IP 白名单中。设置白名单的方法,请参见设置白名单。
使用 caching_sha2_password 认证连接实例
caching_sha2_password 是 MySQL 8.0 及以上版本数据库使用的身份验证插件,采用新的加密算法对登录凭证进行校验,直连地址和数据库代理连接地址均适用。对于服务端尚未缓存登录凭证的用户或 IP,插件执行更严格的全量认证:客户端需要基于 TLS 通道发送明文密码,或使用 MySQL 服务端的 RSA 公钥对密码进行加密,再由服务端使用私钥进行非对称解密;对于已成功登录过的用户,则使用效率更高的快速认证。
连接使用 caching_sha2_password 插件的实例时(无论使用直连地址还是数据库代理连接地址),客户端需要满足以下前提条件中的任意一个:
- 客户端本地已缓存 MySQL 服务端的 RSA 公钥。
说明
- 允许客户端从服务端获取 RSA 公钥(如 Connector/J 的 allowPublicKeyRetrieval=true)时,客户端会信任连接过程中获取到的公钥,在不可信网络中存在被攻击的风险。建议仅在网络可信的内网场景使用该方式,生产环境优先使用 SSL 加密或本地公钥文件。
- 您可以通过执行 SHOW STATUS LIKE 'Caching_sha2_password_rsa_public_key'; 语句获取服务端 RSA 公钥,并将公钥保存为 PEM 格式的本地文件(例如 mysql_server_public_key.pem)后,在客户端连接参数中指定该文件的路径。但需注意,在使用数据库代理连接时,需要确保查询的是主节点公钥,且若实例发生主从切换,需要重新获取公钥。
各语言客户端的配置示例如下。示例中 {ip}、{port}、{db}、{user}、{password} 需分别替换为实例的实际连接地址(直连地址或数据库代理连接地址)、端口、数据库名、账号和密码。
Java(MySQL Connector/J)连接示例
未开启 SSL 时,设置 allowPublicKeyRetrieval=true 允许客户端从服务端获取公钥:
C#(MySQL Connector/NET)连接示例
C(MySQL C API / libmysqlclient)连接示例
- 通过 MYSQL_OPT_GET_SERVER_PUBLIC_KEY 选项从服务端获取公钥。
- 通过 MYSQL_SERVER_PUBLIC_KEY 选项指定本地缓存的服务端 RSA 公钥文件。
最近更新时间:2026.11.05 18:13:35