现象描述
从 CVM 或者轻量应用服务器通过 TDSQL-C MySQL 版内网地址连接实例,连接失败。
说明:
连接登录 TDSQL-C MySQL 版有多种方式,例如 DMC 数据库管理控制台登录、内网连接、外网连接以及云联网连接,不同连接方式所需要的连接条件是不同的。例如,您需要通过外网地址连接 TDSQL-C MySQL 版,在通过命令连接数据库时,命令行输入的是实例的内网地址,则会连接失败;例如,您购买的是轻量应用服务器,未通过云联网打通网络,直接用命令连接 TDSQL-C MySQL 版,则会连接失败。
原因汇总
可能原因 | 说明 |
密码错误。 | |
数据库账号限制了访问的具体主机地址。 | |
连接命令有误。 | |
命令行或配置文件中的 IP 和端口有误。 | |
路由表未启用。 | |
TDSQL-C MySQL 版实例存储空间写满,最大连接数打满,timeout 参数设置问题,处于“可用区切换”状态等。 | |
TDSQL-C MySQL 版实例运行状态 | |
CVM 实例状态 | |
轻量应用服务器实例状态 |
解决办法
密码问题:密码错误
账号所授权的主机地址问题:数据库账号限制了访问的具体主机地址
数据库账号除安全组,子网等网络环境限制以外,还会受到 TDSQL-C MySQL 版自身账号体系的限制。若数据库账号指定了具体主机地址,则其他地址无法连接 TDSQL-C MySQL 版。
您可以通过 TDSQL-C MySQL 版控制台修改数据库账号所授权的主机地址,来限制对数据库的连接,进而提升数据库的连接安全。
1. 登录 TDSQL-C MySQL 版控制台,在集群列表,单击集群 ID,进入集群管理页面。
2. 选择账号管理页,找到需要修改主机的账号,在操作列选择更多 > 修改主机。
3. 在弹出对话框,输入新主机地址,单击确定即可修改账号所授权的主机地址。
说明:
主机地址支持 IP 形式的地址,也支持填入%(表示不做 IP 范围限制);多个主机以分隔符分隔,分隔符支持换行符、空格和
; , |
。示例1:填入%,表示不做 IP 范围限制,即允许所有 IP 地址的客户端使用该账号连接数据库。
示例2:填入10.5.10.%,表示允许 IP 范围在10.5.10.%内的客户端使用该账号连接数据库。
连接语法问题:连接命令有误
请检查连接命令是否有误,请参考标准的外网连接命令:
mysql -h <内网 IP 地址> -u <用户名,默认 root> -P <端口号,默认3306> -p
<内网 IP 地址>:替换为目标 TDSQL-C MySQL 版数据库实例的内网地址,在 TDSQL-C MySQL 版控制台 的集群详情页可查看内网地址。
<用户名,默认 root>:替换为目标 TDSQL-C MySQL 版数据库实例的账号名,默认的账号名是 root。
<端口号,默认3306>:替换为目标 TDSQL-C MySQL 版数据库实例的内网端口号,默认3306,如有修改,请以修改后的端口号为准。
IP 和端口问题:命令行或配置文件中的 IP 和端口有误

云联网路由问题:路由表未开启
通过云联网连接数据库前,需要轻量应用服务器与云联网实例内网互联,然后在云联网实例下添加目标 TDSQL-C MySQL 版的 VPC 网络地址,若云联网实例的路由表下,对目标 TDSQL-C MySQL 版的 VPC 网络段未开启路由,则无法连通,需要开启对应路由后重连。

TDSQL-C MySQL 版实例问题:实例磁盘写满,最大连接数打满,timeout 参数设置问题等
若 TDSQL-C MySQL 版实例的存储空间满了,可能会影响连接数据库,建议对存储空间扩容,操作请参见 调整存储空间。
当出现 “ERROR 1040(00000):Too many connections” 的提示语时,表明云数据库实例当前最大连接数超过了限制。常见原因及解决方案:
i. sleep 线程数很多,建议在控制台调低 wait_timeout 和 interactive_timeout 参数值。操作请参见 设置实例参数。
ii. sleep 线程数很少,也没有慢查询堆积,建议在控制台调大 max_connections 参数值。操作请参见 设置实例参数。
检查实例是否为“切换可用区”状态,若连接实例时,TDSQL-C MySQL 版处于“切换可用区”状态,则会连接失败,请等待切换完毕后,再重新通过命令连接。