本文为您介绍通过不同连接方式(内网连接、外网连接、云联网连接),连接云数据库 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 实例处于主从切换状态,则会连接失败,请等待主从切换完毕后,再重新通过命令连接。
内网连接常见问题
内网连接是否收费?
内网连接免费使用,暂不收费。
内网端口是否可修改?
内网连接错误如何自查?
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 不可访问?
为什么无法开启外网连接?
目前广州、上海、北京、成都、重庆、南京、中国香港、新加坡、首尔、东京、硅谷、弗吉尼亚、法兰克福地域的主实例,支持开启外网连接地址,只读实例支持开启外网连接地址的地域请以控制台为准,如果实例部署在不支持开启外网的地域,则无法开启外网连接。
外网连接错误如何自查?
通过外网地址连接数据库失败的可能原因,通常与账号密码、端口、安全组、网络及实例问题相关,以下分别为您介绍各种场景的自查方法。
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. 检查是否为网络问题。
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(包括同账号/不同账号,同地域/不同地域),可以通过 云联网 实现连接数据库。
轻量应用服务器如何实现内网互联?
轻量应用服务器使用腾讯云自动分配的私有网络 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 实例处于主从切换状态,则会连接失败,请等待主从切换完毕后,再重新通过命令连接。