
# GaussDB实例连接失败怎么办
#### 问题分析
主要从以下几个方面考虑：
1. [排除数据库实例异常]
   例如：数据库系统故障，实例状态异常，实例或表被锁定。
   
2. [（常见）使用正确的客户端连接方式]
   - 内网连接需要GaussDB与ECS实例必须在同一区域、VPC。
   
   - 公网连接需要购买或使用已有EIP，并对GaussDB实例绑定该EIP 。
    
3. [排除连接命令错误]
   例如：连接地址错误、端口参数配置错误、用户名和密码错误。
   
4. [（常见）排除网络不通]
   内网访问
   1. 确认ECS与GaussDB是否在同一个区域，VPC。
   
   2. 检查安全组规则。 安全组外访问安全组内的GaussDB实例时，需要为安全组[添加相应的入方向规则](https://support.huaweicloud.com/usermanual-gaussdb/gaussdb_01_171.html)。
      
   
   3. 在ECS上测试是否可以正常连接到GaussDB实例地址的端口。
    
   公网访问
   1. 检查安全组规则。 安全组外访问安全组内的GaussDB实例时，需要为安全组[添加相应的入方向规则](https://support.huaweicloud.com/usermanual-gaussdb/gaussdb_01_171.html)。
      
   
   2. 检查网络ACL规则。
   
   3. 相同区域主机进行ping测试。
     
5. [（常见）排除实例的磁盘满的情况]
   当实例处于"磁盘空间满"状态时，影响数据的正常读写操作。
   
6. [连接失败的常见报错]
   包含连接失败的常见报错，以及相应的解决方法。
   
 
#### 排查思路
图1连接实例失败排查思路   
![](https://support.huaweicloud.com/gaussdb_faq/figure/zh-cn_image_0000002490486060.png "点击放大")
1. **排除数据库实例异常**
   **检查办法**：请在控制台检查云实例状态是否为"正常"。
   **可能原因**：数据库系统故障，实例状态异常，实例或表被锁定等。
   **解决方案**：如果实例状态为"异常"，请尝试重启。
   图2检查实例状态   
   ![](https://support.huaweicloud.com/gaussdb_faq/figure/zh-cn_image_0000002522685827.png) 
2. **使用正确的客户端连接方式**
   内网和公网连接实例的具体操作步骤，请参见[外部服务器能否访问GaussDB数据库](https://support.huaweicloud.com/gaussdb_faq/gaussdb_01_376.html)。
   表1客户端连接方式 
   | 连接方式 | 使用场景                                                                                                                                   | 连接样例                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   |:---|:---|:---|
   | 内网方式 | 系统默认提供内网IP地址。 当应用部署在弹性云服务器上，且该弹性云服务器与GaussDB实例处于同一区域，同一VPC时，建议单独使用内网IP连接弹性云服务器与GaussDB实例。 | 以连接postgres库为例： **gsql** **-d** *postgres* **-h** *10.0.0.0* **-U** *root* **-p** *8000* - postgres为需要连接的数据库名称。  - 10.0.0.0分布式为CN的IP地址，集中式为主DN的IP地址。  - root为登录数据库的用户名。  - 8000为CN的端口号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | 公网方式 | 不能通过内网IP地址访问GaussDB实例时，使用公网访问，建议单独绑定弹性公网IP连接弹性云服务器（或公网主机）与GaussDB实例。                                                                   | 以连接postgres库为例： **gsql** **-d** *postgres* **-h** *10.0.0.0* **-U** *root* **-p** *8000* - postgres为需要连接的数据库名称。  - 10.0.0.0为实例绑定的公网IP地址。 - 若未绑定NAT网关，请在实例"基本信息"页面"节点列表"模块处获取"弹性公网IP"。  - 若绑定了NAT网关，请在实例"基本信息"页面"节点列表"模块处获取网关中的IP。    - root为登录数据库的用户名。  - 8000为实例的端口号。 - 若未绑定NAT网关，请在实例"基本信息"页面"网络信息"模块处获取"数据库端口"。  - 若绑定了NAT网关，请在实例"基本信息"页面"节点列表"模块处获取网关中的端口。     |
      
   
3. **排除连接命令错误**
   请获取正确的连接地址、端口参数配置、用户名和密码，并重试连接实例。
   **内网连接**
   1. 连接地址 目标实例的"基本信息"页面，节点列表模块的"内网地址"。
      
   
   2. 数据库端口 "数据库端口"。
      
   
   3. 用户名和密码 root管理员账号及其对应的密码。
      
    
   **公网连接**
   1. 连接地址
      - 若未绑定NAT网关，请在实例"基本信息"页面"节点列表"模块处获取"弹性公网IP"。
      
      - 若绑定了NAT网关，请在实例"基本信息"页面"节点列表"模块处获取网关中的IP。
       
   
   2. 数据库端口
      - 若未绑定NAT网关，请在实例"基本信息"页面网络信息模块处获取"数据库端口"。
      
      - 若绑定了NAT网关，请在实例"基本信息"页面节点列表模块处获取网关中的端口。
       
   
   3. 用户名和密码 root管理员账号及其对应的密码。
      
     
4. **排除网络不通**
   **内网访问**
   1. 检查ECS与GaussDB是否在同一个区域，VPC。
      - 不同区域的云服务之间内网互不相通，无法访问实例。请就近选择靠近您业务的区域，可减少网络时延，提高访问速度。
      
      - 不同VPC下，请参考如下方式操作。
        - 参考[切换ECS虚拟私有云](https://support.huaweicloud.com/usermanual-ecs/ecs_03_0504.html)，将ECS的虚拟私有云切换为与GaussDB相同的虚拟私有云。
        
        - 参考[VPC对等连接](https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0046655036.html)，为两个不同的虚拟私有云建立对等连接，实现内网互通。
         
      
      
      图3查看ECS的VPC   
      ![](https://support.huaweicloud.com/gaussdb_faq/figure/zh-cn_image_0000002522845785.png "点击放大")
      图4查看GaussDB的VPC   
      ![](https://support.huaweicloud.com/gaussdb_faq/figure/zh-cn_image_0000002522685835.png)
      
      
   
   2. 检查安全组规则。
      - 查看ECS的安全组的出方向规则，如果目的地址不为"0.0.0.0/0"且协议端口不为"全部"，需要将GaussDB实例的内网IP地址和端口添加到出方向规则。
      
      - 查看GaussDB的安全组的入方向规则，如果源地址不为"0.0.0.0/0"且协议端口不为"全部"，需要将ECS实例的IP地址和端口添加到[入方向规则](https://support.huaweicloud.com/usermanual-gaussdb/gaussdb_01_171.html)。
       
   
   3. 在ECS上测试是否可以正常连接到GaussDB实例地址的端口。
      **telnet** \<*连接地址* \> \<*端口号\>*
      - 可以通信，说明网络是正常的。
      
      - 无法通信，您可以"[新建工单](https://console.huaweicloud.com/ticket/?locale=zh-cn#/ticketindex/createIndex)"联系华为云客服协助解决。
        
    
   **公网访问**
   1. 检查安全组规则。
      - 查看ECS的安全组的出方向规则，如果目的地址不为"0.0.0.0/0"且协议端口不为"全部"，需要将GaussDB实例的公网IP地址和端口添加到出方向规则。
      
      - 查看GaussDB的安全组的入方向规则，如果源地址不为"0.0.0.0/0"且协议端口不为"全部"，需要将ECS实例的IP地址和端口添加到[入方向规则](https://support.huaweicloud.com/usermanual-gaussdb/gaussdb_01_171.html)。
       
   
   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通GaussDB实例绑定的EIP，请在相同区域的另一台ECS上去ping该EIP，如果可以正常ping通，说明虚拟网络正常，您可以"[新建工单](https://console.huaweicloud.com/ticket/?locale=zh-cn#/ticketindex/createIndex)"联系华为云客服协助解决。
      
     
5. **排除实例磁盘已满的情况**
   **检查办法**：磁盘空间使用率可通过管理控制台或云监控服务查看。
   - 通过管理控制台查看 选择目标实例，单击实例名称，进入"基本信息"页面。在"存储与备份"模块，查看磁盘使用率。
     
   
   
   
   - 通过云监控服务查看 选择目标实例，单击"查看监控指标"，跳转到云监控页面，查看目标实例的磁盘使用率指标。
     **可能原因**：内核监测到磁盘使用量超过阈值会将实例设置为只读，无法再写入数据，实例进入盘满只读状态。应用无法对GaussDB数据库进行写入操作，从而影响业务正常运行。
     **解决方案** ：请参见[磁盘扩容](https://support.huaweicloud.com/usermanual-gaussdb/gaussdb_01_165.html)。
     
    
6. **连接失败的常见报错**
   通过命令连接数据库实例时，可能出现的报错信息和解决方案如下所示：
   gsql: ERROR: dn_6001_6002_6003: Invalid username/password,login denied.
   连接GaussDB实例时出现该报错，请检查用户名或密码是否正确。
   
7. **如果上述方法均不能解决您的疑问，请[提交工单](https://console.huaweicloud.com/ticket/?locale=zh-cn#/ticketindex/createIndex)联系华为云客服为您解答。**
 
