
# TaurusDB标准版实例连接失败怎么办
#### 问题分析
主要从八个方面考虑：
1. [排除数据库实例异常]
   例如：数据库系统故障，实例状态异常，实例或表被锁定。
   
2. [（常见）使用正确的客户端连接方式]
   - 内网连接需要TaurusDB标准版与ECS实例必须在同一区域、VPC内。
   
   - 公网连接需要购买或使用已有EIP，并对实例绑定该EIP 。
    
3. [使用正确的SSL方式安全连接]
   界面SSL开关开启和关闭，分别对应不用的连接命令。例如：
   - 开关开启：**mysql -h 172.16.0.31 -P 3306 -u root -p --ssl-ca=/tmp/ca.pem**
   
   - 开关关闭：**mysql -h 172.16.0.31 -P 3306 -u root -p**
    
4. [排除连接命令错误]
   例如：连接地址错误、端口参数配置错误、用户名和密码错误、SSL方式下命令错误。
   
5. [（常见）排除网络不通]
   内网访问
   1. 确认ECS与TaurusDB标准版是否在同一个区域，VPC。
   
   2. 检查安全组规则。 安全组外访问安全组内的TaurusDB标准版实例时，需要为安全组添加相应的入方向规则。
      
   
   3. 在ECS上测试是否可以正常连接到TaurusDB标准版实例地址的端口。
   
   
   公网访问
   1. 检查安全组规则。 安全组外访问安全组内的TaurusDB标准版实例时，需要为安全组添加相应的入方向规则。
      
   
   2. 检查网络ACL规则。
   
   3. 相同区域主机进行ping测试。
    
6. [（常见）排除实例的连接数满的情况]
   实例连接数过多，可能会导致业务侧无法正常连接。
   
7. [（常见）排除实例的磁盘满的情况]
   当实例处于"磁盘空间满"状态时，影响数据的正常读写操作。
   
8. [连接失败的常见报错]
   包含连接失败的常见报错，以及相应的解决方法。
   
 
#### 排查思路
1. **排除数据库实例异常**
   **检查办法**：请在控制台检查实例状态是否为"正常"。
   **可** **能原因**：数据库系统故障，实例状态异常，实例或表被锁定等。
   **解决方案**：如果实例状态为"异常"，请尝试重启。
   
2. **使用正确的客户端连接方式**
   建议安装不低于数据库实例版本的引擎客户端。
   表1客户端连接方式 
   | 连接方式 | 使用场景                                                                                                                                                                                                                      | 连接样例                                                                   |
   |:---|:---|:---|
   | 内网方式 | 系统默认提供内网IP地址。 当应用部署在ECS上，且该ECS与TaurusDB标准版实例处于同一区域，同一VPC时，建议单独使用内网IP连接ECS与TaurusDB标准版实例。                                                                                   | **mysql -h \<内网地址\> -P 3306 -u root -p** **--ssl-ca=/tmp/ca.pem**      |
   | 公网方式 | 不能通过内网IP地址访问TaurusDB标准版实例时，使用公网访问，建议单独绑定弹性公网IP连接ECS（或公网主机）与TaurusDB标准版实例。 用户需要购买弹性公网IP，请参见[弹性公网IP计费说明](https://support.huaweicloud.com/price-eip/eip_billing_0002.html)。 |  **mysql -h \<弹性公网IP\> -P 3306 -u root -p --ssl-ca=/tmp/ca.pem** |
      
   
3. **使用正确的SSL方式安全连接**
   - （推荐）SSL方式：实例连接管理页面的SSL开关开启，并且上传证书到ECS。 **mysql -h 172.16.0.31 -P 3306 -u root -p --ssl-ca=/tmp/ca.pem**
     
   
   - 普通方式：实例基本信息页面的SSL开关关闭。 **mysql -h 172.16.0.31 -P 3306 -u root -p**
     
    
4. **排除连接命令错误**
   请获取正确的连接地址、端口参数配置、用户名和密码、SSL方式下命令错误，并重试连接实例。
   **SSL内网连接TaurusDB标准版实例示例：mysql -h 172.16.0.31 -P 3306 -u root -p --ssl-ca=/tmp/ca.pem**
   - 连接地址 目标实例的"连接管理"页面，"内网连接"页签的"内网地址"。
     
   
   - 数据库端口 目标实例的"连接管理"页面，"内网连接"页签的"数据库端口"。
     
   
   - 用户名和密码 root管理员账号及其对应的密码。
     
   
   - 证书名称 SSL证书文件名，该文件需放在执行该命令的路径下。
     
   
   
   **SSL公网连接TaurusDB标准版实例示例：mysql -h *公网地址* -P 3306 -u root -p --ssl-ca=/tmp/ca.pem**
   - 连接地址 目标实例的"连接管理"页面，"公网连接"页签的"弹性公网IP"。
     
   
   - 数据库端口 目标实例的"连接管理"页面，"公网连接"页签的"数据库端口"。
     
   
   - 用户名和密码 root管理员账号及其对应的密码。
     
   
   - 证书名称 SSL证书文件名，该文件需放在执行该命令的路径下。
     
    
5. **排除网络不通**
   **内网访问**
   1. 检查ECS与TaurusDB标准版是否在同一个区域，VPC。
      - 不同区域的云服务之间内网互不相通，无法访问实例。请就近选择靠近您业务的区域，可减少网络时延，提高访问速度。
      
      - 不同VPC下，请参见[测试网络连通性失败怎么办](https://support.huaweicloud.com/taurusdb-std_faq/taurusdb_01_0212.html)。
       
   
   2. 检查安全组规则。
      - 查看ECS的安全组的出方向规则，如果目的地址不为"0.0.0.0/0"且协议端口不为"全部"，需要将TaurusDB标准版实例的内网IP地址和端口添加到出方向规则。
      
      - 查看TaurusDB标准版实例的安全组的入方向规则，需要将ECS实例的IP地址和端口添加到入方向规则。
       
   
   3. 在ECS上测试是否可以正常连接到TaurusDB标准版实例地址的端口。
      **telnet** \<*连接地址* \> \<*端口号\>*
      - 可以通信，说明网络是正常的。
      
      - 无法通信，请联系客服协助解决。
        
    
   **公网访问**
   1. 检查安全组规则。
      - 查看ECS的安全组的出方向规则，如果目的地址不为"0.0.0.0/0"且协议端口不为"全部"，需要将TaurusDB标准版实例的公网IP地址和端口添加到出方向规则。
      
      - 查看TaurusDB标准版实例的安全组的入方向规则，需要将ECS实例的IP地址和端口添加到入方向规则。
       
   
   2. 检查网络ACL规则。
      1. 进入虚拟私有云[网络ACL](https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0051746700.html)列表。
      
      2. 检查EIP绑定的网卡是否在网络ACL关联的子网下。
      
      3. 查看网络ACL当前是"开启"状态还是"关闭"状态。 若网络ACL为"开启"状态，需要[添加ICMP放通规则进行流量放通](https://support.huaweicloud.com/usermanual-vpc/vpc_acl_0005.html)。
         
      
      
      注意：网络ACL的默认规则是丢弃所有出入方向的包，关闭"网络ACL"后，其默认规则仍然生效。
      
   
   3. 相同区域主机进行ping测试。 如果在原ECS上没有ping通TaurusDB标准版实例绑定的EIP，请在相同区域的另一台ECS上去ping该EIP，如果可以正常ping通，说明虚拟网络正常，请联系客服协助解决。
      
    
6. **排除实例的连接数满的情况**
   **检查办法**：
   1. 通过**show variables like '%max%connections%';** 命令查看实例连接数，示例：
      ![](https://support.huaweicloud.com/taurusdb-std_faq/figure/zh-cn_image_0000002261350620.png)
      - max_connections：允许同时连接的客户端总数。如果设定值为default，表示该参数随内存规格变化，具体请参见[TaurusDB标准版数据库实例支持的最大数据连接数是多少](https://support.huaweicloud.com/taurusdb-std_faq/taurusdb_01_0207.html)。
      
      - max_user_connections：特定TaurusDB标准版账户允许的最大同时连接数。
       
   
   2. 查看实例的连接数指标是否已达上限，可查看目标实例的"数据库总连接数"和"当前活跃连接数"，判断是否需要释放连接。
   
   
   **可能原因**：数据库连接数过多，可能会导致业务侧无法正常连接，也会导致实例全量备份和增量备份失败，影响业务的正常使用。
   **解决方案** ：
   1. 请及时排查业务侧连接是否有效，优化实例连接，释放不必要的连接。
   
   2. 如果设定值为default，可以对数据库进行规格扩容，用以提高max_connections的值，具体请参见变更数据库规格。
   
   3. 云监控服务目前可以监控数据库CPU、内存、磁盘、连接数等指标，并且设置告警策略，出现告警时可以提前识别风险。
     
7. **排除实例的磁盘满的情况**
   **检查办法** ：磁盘空间使用率可通过管理控制台或云监控服务查看。
   - 通过管理控制台查看 选择目标实例，单击实例名称，进入"基本信息"页面。在"存储空间"模块，查看磁盘使用率。
     
   
   - 通过云监控服务查看 选择目标实例，单击"查看监控指标"，跳转到云监控页面，查看目标实例的磁盘使用率指标。
     
     
8. **连接失败的常见报错**
   通过命令连接数据库实例时，可能出现的报错信息和解决方案如下所示：
   - ERROR 2013：Lost connection to MySQL server during query 连接超时参数"wait_timeout"和"interactive_timeout"设置过小时，TaurusDB标准版会自动断开超时的空连接。
     
   
   - ERROR 1045 (28000): Access denied for user 'root'@'192.168.0.30' (using password: YES) 排除是否密码错误问题，确认该主机是否有连接数据库实例的权限，以及TaurusDB标准版客户端和实例VIP是否可以连通。
     
   
   - ERROR 1226 (42000): User 'test' has exceeded the 'max_user_connections' resource (current value:10) 排查是否限制了实例的连接数，导致连接失败。
     
   
   - ERROR 1129 (HY000): Host '192.168.0.111' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 排查是否由于TaurusDB标准版客户端连接数据库的失败次数(不包括密码错误)，超过了max_connection_errors的值，导致连接失败。
     
   
   - \[Warning\] Access denied for user 'username'@'yourIp' (using password: NO) 连接TaurusDB标准版实例时出现该报错，请检查用户名或密码是否正确。
     
   
   - \[Warning\] Access denied for user 'username'@'yourIp' (using password: YES) 连接TaurusDB标准版实例时出现该报错，请检查用户名或密码是否正确。
     
    
9. **如果上述方法均不能解决您的疑问，请联系客服为您解答。**
 
