所选语种没有对应资源,请选择:

本站点使用Cookies,继续浏览表示您同意我们使用Cookies。Cookies和隐私政策>

提示

尊敬的用户,您的IE浏览器版本过低,为获取更好的浏览体验,请升级您的IE浏览器。

升级

FusionCloud 6.3.1 用户指南 (Region Type I) 10

评分并提供意见反馈 :
华为采用机器翻译与人工审校相结合的方式将此文档翻译成不同语言,希望能帮助您更容易理解此文档的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 华为对于翻译的准确性不承担任何责任,并建议您参考英文文档(已提供链接)。
连接访问类

连接访问类

外部服务器能否访问RDS数据库

外部服务器不能直接访问RDS数据库,访问方式如下:

  • 在VPC中开通VPN,通过VPN连接RDS数据库。
  • 将RDS与ECS创建在同一个VPC下,通过ECS来访问RDS数据库。
  • 对于开通公网访问功能的RDS实例,可以通过外网进行访问。

什么是RDS数据库连接数

数据库连接数表示应用程序可以同时连接到数据库的数量,与您的应用程序或者网站能够支持的最大用户数没有关系。

RDS数据库实例支持的最大数据连接数是多少

RDS对此未做限制,取决于数据库引擎参数的默认值和取值范围,例如MySQL引擎的max_connections和max_user_connections参数,用户可在参数组自定义。

如何创建和连接ECS

  1. 创建ECS,请参见“创建弹性云服务器”章节
    • 该ECS用于连接RDS实例,需要与准备使用的RDS实例处于同一VPC内。
    • 正确配置安全组,使得ECS可以通过“连接地址”访问RDS实例。
  2. 连接ECS,请参见“登录弹性云服务器”章节

ECS无法连接到RDS实例的原因

以MySQL实例为例,遇到该问题,参考以下步骤排查解决。

  1. 先确认ECS实例和RDS实例是否在同一个VPC。

    • 如果在,执行步骤 2
    • 如果不在,需要重新创建ECS实例,使之和RDS实例在同一个VPC下。

  2. 查看ECS实例是否添加安全组。

    • 如果有,检查安全组的配置规则是否满足要求,请参见创建RDS for MySQL实例中“安全组”的描述,然后执行步骤 3
    • 如果没有,从ECS的实例详情页面,进入VPC页面,选择“安全组”,添加安全组。

  3. 在弹性云服务器ECS上,测试是否可以正常连接到RDS实例地址的端口。

    MySQL的默认端口为8635。

    PostgreSQL的默认端口为8635。

    Microsoft SQL Server的默认端口为1433。
    telnet <连接地址> {端口号}
    • 如果可以通信,说明网络是正常的。
    • 如果端口不通,请联系技术支持处理。

客户端问题导致连接失败

客户端问题导致连接RDS失败,可以从以下几个方面检查。

  1. 弹性云服务器ECS的安全策略

    对于Windows平台,可检查Windows的安全策略是否开放RDS端口。对于Linux平台,可使用iptables检查防火墙及端口的放行情况。

  2. 应用配置错误

    常见的有连接地址写错、端口参数配置错误和JDBC等的连接参数配置错误。

  3. 用户名或密码错误

    如果连接数据库时出现类似如下错误,请检查用户名或密码是否正确。

    • [Warning] Access denied for user 'username'@'yourIp' (using password: NO)
    • [Warning] Access denied for user 'username'@'yourIp' (using password: YES)
    • Login failed for user 'username'

服务端问题导致连接失败

RDS服务端可能出现的问题如下,请依次进行检测。

  1. 连接方式有误。

    解决方法:检查连接方式。ECS与RDS实例必须处于同一VPC内,且只能通过ECS连接。

  2. 连接数满。

    解决方法:通过RDS的资源监控功能查看连接数、CPU使用率等指标是否正常。如果达到上限,需要重启RDS实例数据库,断开实例连接或升级RDS实例规格解决。

  3. 实例状态异常。比如实例重启卡住,RDS系统故障,实例或表被锁定等。

    解决方法:尝试重启功能。

应用程序怎么访问VPC中的RDS实例

您需要确保您的应用程序所在的ECS与RDS实例在同一个VPC和子网中。如果不在,需要修改VPC中的路由表和网络ACL,以确保应用程序所在的ECS能够访问RDS实例。

访问RDS实例应该如何配置安全组

以ECS(IP:192.168.0.151)访问RDS实例(数据库连接地址:192.168.0.16:8635)为例:

通过ECS访问RDS实例时,ECS安全组需要配置出规则,如图36-24所示。

图36-24 ECS安全组配置
说明:
  • ECS采用的安全组,需要保证出规则能连接RDS实例对应的IP以及端口,数据库客户端工具的出端口是随机选取的,此处出规则针对端口不做限制。
  • 用户登录ECS实例时,ECS所用安全组也需要配置入规则,确保可正常登录。

RDS实例所用安全组,仅需保证入规则能识别ECS的IP,且数据库连接端口地址放开即可,如图36-25所示。

图36-25 RDS实例安全组配置

应用程序是否需要支持自动重连数据库

建议您的应用程序支持自动重连数据库,当数据库重启后,无需人工介入,应用会自动恢复,提供更高的可用性。

同时建议您的应用程序采用长连接方式连接数据库,以降低资源消耗,提高性能。

RDS支持导入哪些数据库引擎的数据

  • 相同引擎数据库之间数据导入导出,称之为同构型数据库之间数据导入导出。
  • 不同引擎数据库之间数据导入导出,称之为异构型数据库之间数据导入导出。例如,从Oracle导入数据到RDS支持的数据库引擎。

    异构型数据库之间由于格式不同,不支持直接导入导出。但只要导入导出的格式数据兼容,理论上,导入表数据也是可行的。

    异构型数据库之间数据导入导出,一般需要第三方软件,通过数据复制的方式来实现。比如,先使用工具从Oracle中,以文本的格式导出表记录,然后利用Load语句导入到RDS支持的数据库引擎。

为什么要采用mysqldump/pg_dump工具迁移

该方案优点是简单,容易上手,缺点是停机时间较长。因此它适用于数据量不大,或者允许停机的时间较长,并且在这个时间范围内能够完成的数据。

由于RDS提供的关系数据库服务与原来的数据库服务是完全兼容的,所以对于用户来说,从原有数据库迁移到RDS数据库的过程,与从一台数据库服务器迁移到另外一台数据库服务器的过程基本类似。

将根证书导入Windows操作系统

操作步骤
  1. 单击“开始”,运行框输入“MMC”,回车。
  2. 在MMC控制台菜单栏中单击“File”,选择“Add/Remove Snap-in”。
  3. 在“Add or Remove Snap-ins”对话框,选择“Available snap-ins”区域的“Certificates”,单击“Add”添加证书。
  4. 在“Certificates snap-in”对话框,选择“Computer account”,单击“Next”。
  5. 在“Select computer”对话框,单击“Finish”。
  6. 在“Add or Remove Snap-ins”对话框,单击“OK”。
  7. 在MMC控制台,双击“Certificates”,右键单击“Trusted Root Certification Authorities”,选择“All Tasks”,单击“Import”。
  8. 单击“Next”。
  9. 单击“Browse”,将文件类型更改为“All files (*.*)”,找到下载的根证书ca.pem文件,单击“Open”,然后在向导中单击“Next”。

    您必须在浏览窗口中将文件类型更改为“All files (*.*)”才能执行此操作,因为“.pem”不是标准证书扩展名。

  10. 单击“Next”。
  11. 单击“Finish”。
  12. 单击“OK”,完成根证书导入。

如何通过JDBC连接PostgreSQL数据库

通过JDBC连接实例的方式有无需下载SSL证书连接和用户下载SSL证书连接两种,其中使用SSL证书连接通过了加密功能,具有更高的安全性。

前提条件

用户熟悉计算机基础知识,了解java编程语言,了解JDBC基础知识。

无证书连接
说明:

该方式属于SSL连接模式,但不对服务端进行证书校验,用户无需下载SSL证书。

  1. 通过JDBC连接RDS PostgreSQL数据库实例,代码中的JDBC链接格式如下:

    jdbc:postgresql://<instance_ip>:<instance_port>/<database_name>?sslmode=require
    说明:
    • instance_ip是主机IP,即“实例管理”页面该集群对应的实例列表中,主机的“连接地址”。
    • 如果通过ECS连接,instance_ip是主机IP,即“实例管理”页面该集群对应的实例列表中,主机的“连接地址”。如果通过连接了公网的设备访问,instance_ip为“基本信息”页面的“公网访问”中的EIP。
    • instance_port是端口,默认8635,当前端口,参考“实例管理”页面该集群对应的实例列表中,主机的“连接地址”。
    • database_name是数据库名,即需要连接的数据库名(默认的管理数据库是postgres)。
    • sslmode是ssl连接模式,require模式表示进行数据加密。

    连接PostgreSQL数据库的java代码,可参考以下示例:

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.Statement;
    
    public class pgsql{  
            final public static void main(String args[]) {  
                Connection c = null;
                Statement stmt = null;
                try {
                    Class.forName("org.postgresql.Driver");
                    c = DriverManager.getConnection("jdbc:postgresql://192.168.0.225:8635/pgtest?sslmode=require", "root", "");
                    c.setAutoCommit(false);
                    System.out.println("Opened database successfully");
                    
                    stmt = c.createStatement();
                    String sql = "CREATE TABLE STUDENTS (ID TEXT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, SEX TEXT NOT NULL, AGE TEXT NOT NULL)";
                    stmt.executeUpdate(sql);
                    System.out.println("Table created successfully");
                    
                    stmt.close();
                    c.commit();
                    c.close();
                } catch (Exception e){
                    System.err.println(e.getClass().getName() + ": " + e.getMessage());
                    System.exit(0);
                }
            }  
        }

使用SSL证书连接
说明:

该方式属于SSL连接模式,需要下载SSL证书,通过证书校验并连接数据库。下载方法请参见SSL连接

  1. 通过JDBC连接PostgreSQL数据库,代码中的JDBC链接格式如下:

    jdbc:postgresql://<instance_ip>:<instance_port>/<database_name>?sslmode=verify-full&sslrootcert=<ca.pem>
    说明:
    • instance_ip是主机IP,即“实例管理”页面该集群对应的实例列表中,主机的“连接地址”。
    • 如果通过ECS连接,instance_ip是主机IP,即“实例管理”页面该集群对应的实例列表中,主机的“连接地址”。如果通过连接了公网的设备访问,instance_ip为“基本信息”页面的“公网访问”中的EIP。
    • instance_port是端口,默认8635,当前端口,参考“实例管理”页面该集群对应的实例列表中,主机的“连接地址”。
    • database_name是数据库名,即需要连接的数据库名(默认的管理数据库是postgres)。
    • sslmode是ssl连接模式,默认全认证模式。
    • sslrootcert是ssl连接CA证书路径,该文件需放在执行该命令的路径下。

    连接PostgreSQL数据库的java代码,可参考以下示例:

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.Statement;
    
    public class pgsql{  
            final public static void main(String args[]) {  
                Connection c = null;
                Statement stmt = null;
                try {
                    Class.forName("org.postgresql.Driver");
                    c = DriverManager.getConnection("jdbc:postgresql://192.168.0.225:8635/pgtest?sslmode=verify-full&sslrootcert=/home/Ruby/ca.pem", "root", "");
                    c.setAutoCommit(false);
                    System.out.println("Opened database successfully");
                    
                    stmt = c.createStatement();
                    String sql = "CREATE TABLE STUDENTS (ID TEXT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, SEX TEXT NOT NULL, AGE TEXT NOT NULL)";
                    stmt.executeUpdate(sql);
                    System.out.println("Table created successfully");
                    
                    stmt.close();
                    c.commit();
                    c.close();
                } catch (Exception e){
                    System.err.println(e.getClass().getName() + ": " + e.getMessage());
                    System.exit(0);
                }
            }  
        }

如何安装MySQL客户端

MySQL官网提供了针对不同操作系统的客户端安装包,以5.6为例。单击此处下载5.6的最新版本,单击此处下载其他归档版本。下面将以Red Hat Linux为例介绍如何获取相应安装包及完成安装。

操作步骤
  1. 获取安装包。

    在下载页面找到对应版本链接,以MySQL-client-5.6.31-1.el6.x86_64.rpm为例,打开页面后,即可下载安装包。

    图36-26 下载
    说明:

    通过红框所在的链接,可直接下载安装包。

  2. 将安装包上传到ECS。

    说明:

    创建ECS时,要选择操作系统,例如Redhat6.6,并为其绑定EIP(Elastic IP,弹性IP)。然后使用远程连接工具将安装包上传到ECS,再用PuTTY连接到ECS。

  3. 执行以下命令安装MySQL客户端。

    sudo rpm -ivh MySQL-client-5.6.31-1.el6.x86_64.rpm
    说明:
    • 如果安装过程中报conflicts,可增加replacefiles参数重新安装,如下:
      rpm -ivh --replacefiles MySQL-client-5.6.31-1.el6.x86_64.rpm
    • 如果安装过程中提示需要安装依赖包,可增加nodeps参数重新安装,如下:
      rpm -ivh --nodeps MySQL-client-5.6.31-1.el6.x86_64.rpm

如何安装PostgreSQL客户端

PostgreSQL官网提供了针对不同操作系统的客户端安装包,以及包含动态依赖库的软件包。单击此处下载Red Hat Linux 6下PostgreSQL9.5的最新版本,下面将以该版本为例,介绍如何获取相应安装包及完成安装。

操作步骤
  1. 获取PostgreSQL客户端安装包。

    在下载页面找到对应版本的链接,以postgresql95为例,打开页面后,即可下载安装包。

    图36-27 下载PG客户端

  2. 获取PostgreSQL客户端动态依赖库包。

    在下载页面找到对应版本的链接,以postgresql95-libs为例, 打开页面后,即可下载动态依赖库包。

    图36-28 下载PG客户端动态依赖库

  3. 将安装包与动态依赖库包上传到ECS。

    说明:

    创建ECS时,要选择操作系统,例如Redhat6.6,并为其绑定EIP。然后使用远程连接工具将安装包与动态依赖库包上传到ECS,再用PuTTY连接到ECS。

  4. 执行以下命令安装PostgreSQL客户端。

    sudo rpm -ivh postgresql95-9.5.7-1PGDG.rhel6.x86_64.rpm postgresql95-libs-9.5.7-1PGDG.rhel6.x86_64.rpm
    说明:
    • 如果安装过程中报conflicts,可增加replacefiles参数重新安装,如下:
      rpm -ivh --replacefiles postgresql95-9.5.7-1PGDG.rhel6.x86_64.rpm postgresql95-libs-9.5.7-1PGDG.rhel6.x86_64.rpm
    • 如果安装过程中提示需要安装依赖包,可增加nodeps参数重新安装,如下:
      rpm -ivh --nodeps postgresql95-9.5.7-1PGDG.rhel6.x86_64.rpm postgresql95-libs-9.5.7-1PGDG.rhel6.x86_64.rpm

如何安装SQL Server Management Studio

Microsoft SQL Server官网提供了SQL Server Management Studio的安装包。SQL Server Management Studio应用程序只能在Windows环境运行。

操作步骤
  1. 获取SQL Server Management Studio的安装包。

    请访问Microsoft网站,下载SQL Server Management Studio。

  2. 将安装包上传到ECS。
  3. 双击安装包,按照向导完成安装。

如何确认SSL根证书的有效期

如果您正在使用SSL连接MySQL,执行如下命令查看证书有效期起止时间,判断证书是否到期。

show status like '%ssl_server%';

在证书到期前请及时更新根证书为最新版本:

  1. 下载新的根证书文件或根证书捆绑包。
  2. 重启实例以使新的根证书生效。
  3. 使用新的根证书文件或根证书捆绑包连接实例。
翻译
下载文档
更新时间:2019-08-15

文档编号:EDOC1100043090

浏览量:13344

下载量:555

平均得分:
本文档适用于这些产品
相关文档
相关版本
Share
上一页 下一页