API 文档

连接实例相关问题

最近更新时间:2020-07-28 15:03:37

如何连接云数据库 MySQL 实例?

连接 MySQL 实例的方式如下:

  • 内网连接:使用云服务器 CVM 直接连接云数据库的内网地址,这种连接方式使用内网高速网络,延迟低。
    云服务器和数据库须是同一账号,且同一个 VPC 内(保障同一个地域),或同在基础网络内。
  • 外网连接:无法通过内网连接时,可通过外网地址连接云数据库 MySQL。外网地址需手动开启,可在 MySQL 控制台 的实例详情页查看,不需要时也可关闭。

详情请参见 连接 MySQL 实例

如何查看内外网地址?

登录 MySQL 控制台,在实例列表,单击实例名,进入实例详情页查看。

如何开启外网地址?

登录 MySQL 控制台,在实例列表,单击实例名,进入实例详情页,在“外网地址”处打开。

外网连接较慢,怎么办?

建议使用内网连接,这种连接方式使用内网高速网络,延迟低。内网连接请参见 连接 MySQL 实例

我的云服务器 CVM 和云数据库 MySQL,能否直接使用内网连接?

  1. 需要满足如下条件,才能使用内网连接:
    云服务器和数据库须是同一账号,且同一个 VPC 内(保障同一个地域),或同在基础网络内。
  2. 是否满足同一个 VPC 内或同在基础网络内,判断方法如下:

我的云服务器 CVM 和云数据库 MySQL,无法内网连接,怎么办?

首先建议您使用 一键连接检查工具 进行排查,根据检查报告提示,在 无法连接常见场景 查找相应解决方案。

我的云服务器 CVM 和云数据库 MySQL 在不同地域下(如 CVM 在广州,MySQL 在上海),可以直接内网访问吗?

不可以直接内网访问,解决方案请参见 地域不同

我的云服务器 CVM 和云数据库 MySQL 在同一个地域下的不同可用区(如 CVM 在上海二区,MySQL 在上海一区),可以使用内网连接吗?

云服务器和云数据库 MySQL在同一个地域,不一定是同一个私有网络,也有可能是不同的私有网络。

  • 若是同一私有网络的不同可用区,则可以使用内网互联。
  • 若不是同一私有网络(如云数据库在VPC1,云数据库在VPC2),则无法直接内网互联,解决方案请参见 私有网络不同

不同账号下的云服务器 CVM 和云数据库 MySQL ,可以直接内网访问吗?

不可以直接内网访问,条件之一:CVM 和 MySQL 必须是同一账号。

我的云服务器 CVM 和云数据库 MySQL,均满足内网互连的条件:同一账户且同一个私有网络下,但还是无法连接,怎么办?

您可以从如下两方面进行排查处理:

使用 telnet 验证云数据库的网络端口连通正常后,在云服务器上通过命令行登录云数据库,出现相关报错,如何处理?

  • 当出现 “ERROR 1045(28000):Access denied for user...” 的提示语时,请确认您输入的云数据库帐号、密码是否正确,忘记密码请参见 重置密码,如果重复输入正确信息后仍然报该错误,请查看您的实例是否有对连接 IP 做限制,在 MySQL 控制台 实例管理页的【数据库管理】>【帐号管理】。

  • 当出现 “ERROR 1040(00000):Too many connections” 的提示语时,表明云数据库实例当前最大连接数超过了限制。常见原因及解决方案:
    i. sleep 线程数很多,建议在控制台调低 wait_timeout和interactive_timeout 参数值。
    ii. 慢查询堆积,long_query_time参数值默认10s,建议调成1s - 2s,观察慢查询日志。
    iii. sleep 线程数很少,也没有慢查询堆积,建议在控制台调大 max_connections 参数值。

  • 当出现 “ERROR 2003 (HY000): Can't connect to MySQL server...” 的提示语时,请确认您输入的云数据库的 IP、端口信息是否正确。如果重复输入正确信息后仍然报该错,可以查看该实例控制台的安全组策略,确认该 CVM 是否有连接该数据库的权限,请参见 云数据库安全组

  • 如果是在数据迁移时遇到连通性测试不通时,请查看是否对提示的迁移代理 IP 做了安全策略的开通。

  • 用户设置了 init_connect 参数,例如:mysql>set global init_connect='insert into db_monitor.accesslog(thread_id,log_time,localname,matchname) values(connection_id(),now(),user(),current_user())';
    这会触发每个非 super 权限用户的连接,在每次连接数据库都会向 db_monitor.accesslog 表里插入一条记录,一旦 db_monitor.accesslog 表上存在未提交的事务或相关的锁等待,那么 insert into db_monitor.accesslog 表的操作都会被卡住,进而导致非 super 权限用户的所有连接都会被卡住,影响到用户正常使用云数据库。请用户谨慎配置 init_connect 参数。

目录