连接登录相关问题

最近更新时间:2019-08-16 14:33:05

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

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

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

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

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

当使用云数据库出现连接登录问题时,首先 telnet 验证云数据库的网络端口连通性,然后在云服务器上通过命令行登录云数据库:

说明:

云数据库的帐号默认为 root,密码为初始化选项中配置的帐号密码。

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

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

  • 当出现 “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 是否有访问该 TencentDB 的权限。详见 云数据库安全组
  • 如果是在数据迁移时遇到连通性测试不通时,请查看是否对提示的迁移代理 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 参数。