
# ECS自建库(MySQL)连接失败怎么办
1. 报错信息："Access denied for user 'user_name'@'100.xxx.xx.xx' (using password: YES)"。
   1. 报错原因：ECS自建库用户名或密码不对。 解决方法：请确认数据库用户名和密码是否正确。如果确认账户名和密码正确，可以通过客户端或命令行工具登录数据库，执行select \* from mysql.user where user = 'user_name'命令查看用户信息，如果存在100.%网段的用户，则DAS只能通过100.%网段的数据库用户去连接数据库。user_name @%与user_name @100.%是两个用户，其密码和权限都是独立的，请确认输入的密码是否是user_name @100.%用户的密码。
      
   
   2. 报错原因：DAS服务器的IP地址不在您输入用户的白名单中。 解决方法：使用客户端或命令行工具登录到数据库，创建DAS可以访问的数据库用户。
      ```
      create user 'user_name'@'100.%' identified by 'password';
      grant all privileges on *.* to 'user_name'@'100.%';
      ```
      ![](https://support.huaweicloud.com/das_faq/public_sys-resources/note_3.0-zh-cn.png)
      - DAS服务器IP地址所在网段为100.%，请根据实际使用需要添加白名单。
      
      - 请根据实际使用需要给user_name@100.%用户赋予权限。
        
   
   3. 报错原因： 使用SSL用户登录，服务端没有开启SSL功能。 解决方法：请执行如下语句查询用户是否是SSL用户，如果是，则在RDS实例详情页面，将SSL开关打开。其中，ssl_type字段有值即表示此用户是SSL用户。
      ```
      select user, host, ssl_type from mysql.user where user = 'user_name';
      ```
      
    
2. 报错信息： Host 'xxx.xxx.xx.xx' is not allowed to connect to this MySQL server。 报错原因： 您输入的数据库用户不允许远程登录MySQL（如root用户，mysql.user表中只设置了root@localhost用户，指定用户只能本地登录）。
   解决方法：使用客户端工具或命令行登录MySQL，创建可以远程登录的用户。
   ```
   create user 'user_name'@'100.%' identified by 'password'; 
   grant all privileges on *.* to 'user_name'@'100.%';
   ```
   ![](https://support.huaweicloud.com/das_faq/public_sys-resources/note_3.0-zh-cn.png)
   - DAS服务器IP地址所在网段为100.%，请根据实际使用需要添加白名单。
   
   - 请根据实际使用需要给user_name@100.%用户赋予权限。
     
3. 报错信息： Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server。
   1. 报错原因： ECS设置的安全组规则不支持此端口被访问 解决方法：请参考[查看并放通ECS实例安全组规则](https://support.huaweicloud.com/das_faq/das_20_0028.html)。
      
   
   2. 报错原因： ECS虚拟机设置的防火墙策略不允许此端口被访问。 解决方法：请参考[查看并放通防火墙](https://support.huaweicloud.com/das_faq/das_20_0029.html)。
      
   
   3. 报错原因：远程访问MySQL数据库，服务端侧进行的DNS解析动作，耗时太长导致连接实例超时。 解决方法：请按照以下操作进行修复。
      1. 在/etc/my.cnf路径下查找MySQL数据库的配置文件，在"\[mysqld\]"下，输入如下内容，并保存退出。
         ```
         skip-name-resolve
         ```
         ![](https://support.huaweicloud.com/das_faq/zh-cn_image_0000001694534025.png)
         ![](https://support.huaweicloud.com/das_faq/public_sys-resources/note_3.0-zh-cn.png)
         MySQL数据库的配置文件，默认位置为"/etc/my.cnf"，若您将配置文件指定位置存放时，需对应调整。
         
      
      2. 重启数据库服务"systemctl restart mysqld"，尝试再次连接。
       
    
4. 报错信息： Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server。 报错原因：DAS服务器与实例网络不通。
   解决方法：请检查实例的防火墙配置是否正常、是否开放对应端口，如防火墙配置异常或未开放对应端口请修复后再次尝试连接实例。修复后还无法解决，请[提交工单](https://console.huaweicloud.com/ticket/?locale=zh-cn#/ticketindex/createIndex)联系客服人员协助处理
   
5. 报错信息：Instance connect timeout, please login again. 报错原因：DAS服务器连接超时。
   解决方案：请按照以下方法进行检查并尝试修复。
   1. 请远程登录ECS虚拟机，执行"iptables -S \| grep input"命令检查实例的防火墙配置是否正常。如果自建库端口号没在开放的白名单中，您可以新增一条iptables规则或通过"systemctl stop iptables"命令关闭防火墙，保证端口能被访问后再次尝试连接实例。
   
   2. 请远程登录ECS虚拟机，执行"ps -ef \| grep mysql"命令检查数据库进程是否正常，mysqld_safe进程与mysqld进程均存在则为正常。如进程不存在请执行"systemctl start mysqld"命令重启数据库后再次尝试连接实例。
   
   3. 如上述方法均无法解决，请[提交工单](https://console.huaweicloud.com/ticket/?locale=zh-cn#/ticketindex/createIndex)联系客服人员协助处理。
     
 
