连接常见问题

最近更新时间:2024-10-18 14:14:22

我的收藏
本文为您介绍通过不同连接方式(内网连接、外网连接、云联网连接),连接云数据库 MySQL 实例的常见问题。

共性问题

无论使用哪种连接方式连接数据库,都容易出现以下共性问题,如果连接失败,自查时建议您首先根据以下建议检查定位原因。
账号密码问题
登录云服务器后,通过命令登录云数据库时反复失败,请检查您用于登录数据库的账号和密码是否存在错误。
在命令行中:mysql -h <内/外网 IP 地址> -u <用户名,默认 root> -P <内/外网端口号> -p,用于登录的账号和密码需对应正确,如您使用的是非 root 账号登录,则密码也需要输入对应非 root 账号的密码,在云服务器界面输入密码时,密码是不会随输入而显示的,需一次性正确输入并按下回车键,若忘记密码,您可以 重置密码 后重试。
云数据库 MySQL 实例问题
若实例本身状态有问题,则连接可能会失败,您可检查是否存在以下实例问题。
若 MySQL 实例的磁盘满了,可能会影响连接数据库,建议对磁盘扩容,操作请参见 调整数据库实例规格
当出现 “ERROR 1040(00000):Too many connections” 的提示语时,表明云数据库实例当前最大连接数超过了限制。常见原因及解决方案: i. sleep 线程数很多,建议在控制台调低 wait_timeout 和 interactive_timeout 参数值。操作请参见 设置实例参数。 ii. sleep 线程数很少,也没有慢查询堆积,建议在控制台调大 max_connections 参数值。操作请参见 设置实例参数
检查 MySQL 实例是否为“主从切换状态”,若连接实例时,MySQL 实例处于主从切换状态,则会连接失败,请等待主从切换完毕后,再重新通过命令连接。

内网连接常见问题

内网连接是否收费?

内网连接免费使用,暂不收费。

内网端口是否可修改?

可以修改,您可登录 MySQL 控制台,在目标实例详情页,单击内网地址后的编辑图标进行修改。


内网连接错误如何自查?

通过内网地址连接数据库失败的可能原因,通常与云服务器类型、账号密码、端口、安全组、网络及实例问题相关,以下分别为您介绍各种场景的自查方法。更多自查诊断处理请参见 内网连接失败
1. 检查您用于连接的服务器是否是云服务器 CVM。
使用内网连接,需要所使用的服务器为 云服务器 CVM,如果您使用的是 轻量应用服务器 或者其他非腾讯平台服务器,则暂不支持通过内网地址连接,您可以参考 自定义配置 Linux 云服务器 重新创建一个云服务器 CVM 再通过内网地址连接数据库。
2. 登录云服务器 CVM 后,通过命令登录云数据库时反复失败,可检查您用于登录数据库的账号和密码是否存在错误。
在命令行中:mysql -h <内网 IP 地址> -u <用户名,默认 root> -P <端口号,默认3306> -p,用于登录的账号和密码需对应正确,如您使用的是非 root 账号登录,则密码也需要输入对应非 root 账号的密码,在 CVM 界面输入密码时,密码是不会随输入而显示的,需一次性正确输入并按下回车键,若忘记密码,您可以 重置密码 后重试。
3. 检查安全组配置是否合理,是否限制 IP。
在 CVM 安全组中配置出站规则,当出站规则的目标配置不为0.0.0.0/0且协议端口不为 ALL 时,需要把 MySQL 的内网 IP 及端口添加到出站规则中。
在 MySQL 安全组中配置入站规则,当入站规则的源端配置不为0.0.0.0/0且协议端口不为ALL时,需要把 CVM 的 IP 及端口添加到入站规则中。
4. 检查是否为网络问题。
CVM 与 MySQL 需要在同一地域和同一 VPC 网络,可前往 云服务器控制台云数据库 MySQL 控制台 确认是否满足,若不处于同一 VPC 网络,可通过 切换网络 将 MySQL 实例的网络切换为与 CVM 一致。如果确认 CVM 与 MySQL 在同一地域和同一 VPC 网络下,还报错网络问题,请自查本地网络是否有限制。
5. 检查是否存在实例问题。
若 MySQL 实例的磁盘满了,可能会影响连接数据库,建议对磁盘扩容,操作请参见 调整数据库实例规格
当出现 “ERROR 1040(00000):Too many connections” 的提示语时,表明云数据库实例当前最大连接数超过了限制。常见原因及解决方案: i. sleep 线程数很多,建议在控制台调低 wait_timeout 和 interactive_timeout 参数值。操作请参见 设置实例参数。 ii. sleep 线程数很少,也没有慢查询堆积,建议在控制台调大 max_connections 参数值。操作请参见 设置实例参数
检查 MySQL 实例是否为“主从切换状态”,若连接实例时,MySQL 实例处于主从切换状态,则会连接失败,请等待主从切换完毕后,再重新通过命令连接。

外网连接常见问题

外网连接是否收费?

外网连接免费使用,暂不收费。

为什么外网连接需要放通 MySQL 内网端口?

云数据库 MySQL 实例开启外网地址后,是通过腾讯云的后端集群去内网访问数据库的内网端口,做端口映射,然后转发实现外网访问,所以实例的外网地址开启后需要在安全组内放通 MySQL 内网端口给后端的集群连接。

外网端口可以修改吗?

不支持修改。

外网连接的安全性怎么样?

开启外网地址,会使您的数据库服务暴露在公网上,可能导致数据库被入侵或攻击,通常建议使用 内网连接数据库。云数据库外网连接适用于开发或辅助管理数据库,不建议正式业务连接使用,因为可能存在不可控因素会导致外网连接不可用(例如 DDOS 攻击、突发大流量访问等)。

开启外网地址后,如何限制指定 IP 进行连接,其他 IP 不可访问?

对主机位的权限限制,可以通过云数据库 MySQL 控制台修改数据库账号所授权的主机地址,来限制对数据库的访问。请参见 修改授权访问的主机地址
或者您可以考虑使用公网 CLB 的方式做转发,实现外网登录,通过 CLB 这里的安全组策略来做来源限。请参见 通过 CLB 开启外网服务

为什么无法开启外网连接?

目前广州、上海、北京、成都、重庆、南京、中国香港、新加坡、首尔、东京、硅谷、弗吉尼亚、法兰克福地域的主实例,支持开启外网连接地址,只读实例支持开启外网连接地址的地域请以控制台为准,如果实例部署在不支持开启外网的地域,则无法开启外网连接。




外网连接错误如何自查?

通过外网地址连接数据库失败的可能原因,通常与账号密码、端口、安全组、网络及实例问题相关,以下分别为您介绍各种场景的自查方法。
1. 登录云服务器 CVM 后,通过命令登录云数据库时反复失败,可检查您用于登录数据库的账号和密码是否存在错误。
在命令行中:mysql -h <外网 IP 地址> -u <用户名,默认 root> -P <外网端口号> -p,用于登录的账号和密码需对应正确,如您使用的是非 root 账号登录,则密码也需要输入对应非 root 账号的密码,在 CVM 界面输入密码时,密码是不会随输入而显示的,需一次性正确输入并按下回车键,若忘记密码,您可以 重置密码 后重试。
2. 检查安全组配置是否合理,是否限制 IP。
在 CVM 安全组中配置出站规则,当出站规则的目标配置不为0.0.0.0/0且协议端口不为 ALL 时,需要把 MySQL 的外网 IP 及端口添加到出站规则中。
在 MySQL 安全组中配置入站规则,当入站规则的源端配置不为0.0.0.0/0且协议端口不为ALL时,需要在入站规则中放通 MySQL 实例的内网端口,默认为3306。
3. 检查是否为网络问题。
通过外网连接数据库,若网络不稳定,本地网络限制,VPC 绑定 ACL 策略均会导致通过外网连接数据库失败,请切换本地网络,解除相关限制再重试。建议使用 内网连接数据库,更加稳当、低延时。
4. 检查是否存在实例问题。
若 MySQL 实例的磁盘满了,可能会影响连接数据库,建议对磁盘扩容,操作请参见 调整数据库实例规格
当出现 “ERROR 1040(00000):Too many connections” 的提示语时,表明云数据库实例当前最大连接数超过了限制。常见原因及解决方案: i. sleep 线程数很多,建议在控制台调低 wait_timeout 和 interactive_timeout 参数值。操作请参见 设置实例参数。 ii. sleep 线程数很少,也没有慢查询堆积,建议在控制台调大 max_connections 参数值。操作请参见 设置实例参数
检查 MySQL 实例是否为“主从切换状态”,若连接实例时,MySQL 实例处于主从切换状态,则会连接失败,请等待主从切换完毕后,再重新通过命令连接。

云联网连接常见问题

云联网连接是否收费?

使用云联网会产生费用,具体请参见 云联网计费说明

为什么外网连接需要放通 MySQL 内网端口?

云数据库 MySQL 实例开启外网地址后,是通过腾讯云的后端集群去内网访问数据库的内网端口,做端口映射,然后转发实现外网访问,所以实例的外网地址开启后需要在安全组内放通 MySQL 内网端口给后端的集群连接。

外网端口可以修改吗?

不支持修改。

什么情况下使用云联网连接云数据库 MySQL?

1. 云服务器和云数据库 MySQL 实例处于不同 VPC(包括同账号/不同账号,同地域/不同地域),可以通过 云联网 实现连接数据库。
2. 若您购买的服务器为 轻量应用服务器,则需要通过 云联网 实现连接数据库。

轻量应用服务器如何实现内网互联?

轻量应用服务器使用腾讯云自动分配的私有网络 VPC 进行网络隔离,默认情况下内网不与云服务器 CVM、云数据库等其他处于私有网络 VPC 中的腾讯云资源内网互通,需通过关联云联网实现。详情请参见 内网互联
说明:
轻量应用服务器仅支持关联同账号下的云联网,跨账号轻量应用服务器无法互通。

云联网的服务等级是什么?

腾讯云云联网服务提供三种可用性等级:白金、金、银。
同地域的服务等级均为金,且不可修改。
跨地域互通时,提供白金、金、银三个服务等级,用户创建云联网时可选择服务等级。 不同的服务等级费用不同,您可以根据业务需要进行选择,详细内容请参见 计费说明

云联网连接错误如何自查?

1. 检查云联网的路由表是否有效。请通过以下步骤进行检查:
1.1 在“内网互联”页面中,单击地域卡片中的“云联网 ID”,前往该云联网详情页。
1.2 在云联网详情页中,选择路由表页签。
1.3 需确认新增的路由条目为“有效”,若存在 CIDR 冲突的情况,则该路由条目可能无效。


说明:
如需使用无效路由,请参见 停用路由启用路由。冲突规则及限制请参见 路由限制
2. 登录轻量应用服务器后,通过命令登录云数据库时反复失败,可检查您用于登录数据库的账号和密码是否存在错误。
在命令行中:mysql -h <内网 IP 地址> -u <用户名,默认 root> -P <端口号,默认3306> -p,用于登录的账号和密码需对应正确,如您使用的是非 root 账号登录,则密码也需要输入对应非 root 账号的密码,在轻量应用服务器界面输入密码时,密码是不会随输入而显示的,需一次性正确输入并按下回车键,若忘记密码,您可以 重置密码 后重试。
3. 检查是否存在实例问题。
若 MySQL 实例的磁盘满了,可能会影响连接数据库,建议对磁盘扩容,操作请参见 调整数据库实例规格
当出现 “ERROR 1040(00000):Too many connections” 的提示语时,表明云数据库实例当前最大连接数超过了限制。常见原因及解决方案: i. sleep 线程数很多,建议在控制台调低 wait_timeout 和 interactive_timeout 参数值。操作请参见 设置实例参数。 ii. sleep 线程数很少,也没有慢查询堆积,建议在控制台调大 max_connections 参数值。操作请参见 设置实例参数
检查 MySQL 实例是否为“主从切换状态”,若连接实例时,MySQL 实例处于主从切换状态,则会连接失败,请等待主从切换完毕后,再重新通过命令连接。