连接登录相关问题

最近更新时间:2019-04-15 17:47:53

云服务器与云数据库部署在相同区域上,如何连接 MySQL?

云服务器与云数据库部署在相同区域上时,请使用内网访问,连接方式请参考 访问MySQL数据库

云服务器与云数据库部署在不同区域上,如何连接 MySQL?

云服务器与云数据库部署在不同区域上时,请使用外网访问,连接方式请参考 外网访问

同一账号 TencentDB 数据库在上海一区,云服务器也在上海一区内网无法 PING 通?

TencentDB 是默认禁 ping 的,可以使用 telnet 来检测连通性。

如何使用外网访问数据库 TencentDB for MySQL?

外网访问请参考 外网访问

如何使用内网访问数据库 TencentDB for MySQL?

内网访问请参考 访问 MySQL 数据库

云数据库连接故障诊断及解决方案

当使用云数据库出现连接登录问题时,首先 telnet 验证云数据库的网络端口连通性,然后在您的云服务器上通过命令行登录云数据库(云数据库的帐号默认为 root,密码为之前在初始化选项中配置的帐号密码):

mysql -h [云数据库IP] -P[云数据库端口号] -uroot -p[云数据库密码]

下面是常见的问题类型及解决方案:

  1. 当出现 “ERROR 1045(28000):Access denied for user...” 的提示语时,请确认您输入的云数据库帐号、密码是否正确,忘记密码请参考 密码重置,如果重复输入正确信息后仍然报该错误,请查看您的实例是否有对访问 IP 做限制,在 MySQL 控制台 实例详情页的【数据库管理】>【帐号管理】。
  2. 当出现 “ERROR 1040(00000):Too many connections” 的提示语时,表明云数据库实例当前最大连接数超过了限制。常见原因及解决方案:
    i. sleep 线程数很多,建议在控制台调低 wait_timeout和interactive_timeout 参数值。
    ii. 慢查询堆积,long_query_time参数值默认10s,建议调成1s - 2s,观察慢查询日志。
    iii. sleep 线程数很少,也没有慢查询堆积,建议在控制台调大 max_connections 参数值。
  3. 当出现 “ERROR 2003 (HY000): Can't connect to MySQL server...” 的提示语时,请确认您输入的云数据库的 IP、端口信息是否正确。如果重复输入正确信息后仍然报该错,可以查看该实例控制台的“安全组”策略,确认该 CVM 是否有访问该 TencentDB 的权限。详见 云数据库安全组操作指引
  4. 如果是在数据迁移时遇到连通性测试不通时,请查看是否对提示的迁移代理 IP 做了安全策略的开通。
  5. 用户设置了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 都会向 db_monitor.accesslog 表里插入一条记录,一旦 db_monitor.accesslog 表上存在未提交的事务或相关的锁等待,那么 insert into db_monitor.accesslog 表的操作都会被卡住,进而导致非 super 权限用户的所有连接都会被卡住,影响到用户正常使用云数据库。请用户谨慎配置 init_connect 参数。