购买并通过postgresql客户端连接rds for postgresql实例-九游平台
rds for postgresql实例购买完成后,可以先登录到linux弹性云服务器,在ecs上安装postgresql客户端,然后执行psql命令行通过postgresql内网ip连接到实例。
通过postgresql客户端连接实例的方式有ssl连接。ssl连接通过了加密功能,具有更高的安全性。
创建rds for postgresql实例时默认开启ssl,实例创建完成后,不支持关闭。
开启ssl连接数据库实例后,数据库的只读、读写性能是未开启ssl连接数据库实例的80%左右。
操作流程
操作步骤 |
说明 |
---|---|
注册华为账号并开通华为云、实名认证、账户充值,以及对rds进行精细权限管理。 |
|
选择rds for postgresql的基础配置、高级配置信息,购买数据库实例。 |
|
通过postgresql客户端连接数据库实例时,必须先准备一台服务器,在服务器上安装postgresql客户端并执行连接命令。 购买linux ecs,并确认ecs实例与rds for postgresql实例在同一区域、同一vpc内。 |
|
测试ecs到rds for postgresql实例内网ip和端口的网络连通性,并在ecs上安装postgresql客户端。 |
|
使用命令行通过内网ip和端口连接rds for postgresql实例。 |
准备工作
- 注册华为账号并开通华为云。
- 完成实名认证。
- 购买实例前需要确保账户有足够金额,请参见账户充值。
- 如果需要对华为云上的资源进行精细管理,请使用统一身份认证服务(identity and access management,简称iam)创建iam用户及用户组,并授权,以使得iam用户获得具体的操作权限,更多操作,请参见创建用户组、用户并授予rds权限。
步骤1:购买rds for postgresql实例
- 进入。
- 在“快速购买”页面,配置实例基础参数。
下面的配置项仅作为示例,实际购买时根据用户需求选择合适的资源。
图1 基础配置参数
示例
参数说明
计费模式
按需计费
实例的计费模式。
- 包年/包月:一种预付费模式,即先付费再使用,按照订单的购买周期进行结算。购买周期越长,享受的折扣越大。一般适用于需求量长期稳定的成熟业务。
- 按需计费:一种后付费模式,即先使用再付费,按照云数据库rds实际使用时长计费,秒级计费,按小时结算。按需计费模式允许您根据实际业务需求灵活地调整资源使用,无需提前预置资源,从而降低预置过多或不足的风险。
区域
华北-北京四
资源所在的区域。
说明:不同区域内的产品内网不互通,且创建后不能更换,请谨慎选择。
引擎版本
16
数据库版本。
实例类型
主备
实例的架构类型。
主备:采用一主一备的经典高可用架构,主备实例的每个节点的规格保持一致。备机提高了实例的可靠性,创建主机的过程中,会同步创建备机,备机创建成功后,用户不可见。
性能规格
通用型 4u8gb
实例的cpu和内存规格。
磁盘存储
ssd云盘 100gb
实例的存储空间。
您申请的存储空间会有必要的文件系统开销,这些开销包括索引节点和保留块,以及数据库运行必需的空间。
磁盘加密
不加密
选择加密后会提高数据安全性,但对数据库读写性能有少量影响,请按照您的使用策略进行选择。
如果使用共享kms密钥,对应的cts事件为createdatakey和decrydatakey,仅密钥所有者能够感知到该事件。
- 实例高级配置。
图2 高级配置
参数
示例
参数说明
虚拟私有云
default_vpc
实例所在的虚拟网络环境,可以对不同业务进行网络隔离。
如果没有可选的虚拟私有云,单击“创建虚拟私有云”,完成创建后单击
。具体操作请参见创建虚拟私有云和子网。
子网
default_subnet
通过子网提供与其他网络隔离的、可以独享的网络资源,以提高网络安全性。
安全组
default
安全组限制实例的安全访问规则,加强rds for postgresql与其他服务间的安全访问。
企业项目
default
对于已成功关联企业项目的用户,仅需在“企业项目”下拉框中选择目标项目。
更多关于企业项目的信息,请参见《企业管理用户指南》。
购买数量
1
批量创建实例的个数。
- 配置完成后,单击“立即购买”。
- 查看购买成功的rds for postgresql实例。
图3 购买成功
步骤2:购买ecs
- 进入。
- 查看是否有符合要求的linux ecs。
rds for postgresql支持以下两种常用的客户端安装方式:
- 下载postgresql客户端安装包进行安装:postgresql 15及以下版本推荐使用该方式,同时对ecs的镜像也有要求,详见。
- 下载源码进行安装:该方式对postgresql版本及ecs的镜像没有要求。
- 分别查看ecs的区域和vpc,以及rds for postgresql实例的区域和vpc。确认ecs实例与rds for postgresql实例处于同一区域、同一vpc内。
图4 ecs基本信息图5 postgresql概览
- 如果不在同一区域,请重新购买ecs实例。不同区域的云服务之间内网互不相通,无法访问实例。请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。
- 如果不在同一vpc,可以修改ecs的vpc,请参见切换虚拟私有云。
步骤3:测试连通性并安装postgresql客户端
- 登录ecs实例,请参见《弹性云服务器用户指南》中“linux弹性云服务器远程登录(vnc方式)”。
- 在rds“实例管理”页面,单击实例名称进入“概览”页面。
- 选择“连接管理”,在“连接信息”模块获取实例的内网地址和数据库端口。
图6 连接信息
- 在ecs上测试是否可以正常连接到rds for postgresql实例内网地址的端口。
curl -kv 192.168.0.7:5432
- 如果可以通信,说明网络正常。
- 如果无法通信,请检查安全组规则。
- 查看ecs的安全组的出方向规则,如果目的地址不为“0.0.0.0/0”且协议端口不为“全部”,需要将rds实例的内网ip地址和端口添加到出方向规则。
图7 ecs的安全组
- 查看rds的安全组的入方向规则,需要将ecs实例的私有ip地址和端口添加到入方向规则。
- 查看ecs的安全组的出方向规则,如果目的地址不为“0.0.0.0/0”且协议端口不为“全部”,需要将rds实例的内网ip地址和端口添加到出方向规则。
- 安装postgresql客户端。
postgresql社区提供了针对不同操作系统的。通过操作系统的安装工具直接下载安装。此安装方式比较简单,但是对ecs操作系统有要求,只有postgresql社区中支持的操作系统才可以使用该安装方式。
使用操作系统默认安装,当前使用的linux操作系统是centos 7,通过工具安装最高版本是15版本。
图8 获取安装工具执行安装命令:
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/el-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm sudo yum install -y postgresql15-server
查看是否安装成功:
psql -v
图9 安装成功
- 登录ecs实例,请参见《弹性云服务器用户指南》中“linux弹性云服务器远程登录(vnc方式)”。
- 在rds“实例管理”页面,单击实例名称进入“概览”页面。
- 选择“连接管理”,在“连接信息”模块获取实例的内网地址和数据库端口。
图10 连接信息
- 在ecs上测试是否可以正常连接到rds for postgresql实例内网地址的端口。
curl -kv 192.168.0.7:5432
- 如果可以通信,说明网络正常。
- 如果无法通信,请检查安全组规则。
- 查看ecs的安全组的出方向规则,如果目的地址不为“0.0.0.0/0”且协议端口不为“全部”,需要将rds实例的内网ip地址和端口添加到出方向规则。
图11 ecs的安全组
- 查看rds的安全组的入方向规则,需要将ecs实例的私有ip地址和端口添加到入方向规则。
- 查看ecs的安全组的出方向规则,如果目的地址不为“0.0.0.0/0”且协议端口不为“全部”,需要将rds实例的内网ip地址和端口添加到出方向规则。
- 安装postgresql客户端。
,该安装方式对rds for postgresql实例的版本以及ecs的操作系统没有限制。
下面以huawei cloud euleros 2.0镜像的ecs为例,安装postgresql 16.4版本客户端。
图12 查看ecs镜像- 要支持ssl,需要在ecs上提前下载openssl。
sudo yum install -y openssl-devel
- 在获取代码下载链接,使用wget直接下载安装包或者下载到本地后上传到ecs上。
wget https://ftp.postgresql.org/pub/source/v16.4/postgresql-16.4.tar.gz
- 解压安装包。
tar xf postgresql-16.4.tar.gz
- 编译安装。
cd postgresql-16.4 ./configure --without-icu --without-readline --without-zlib --with-openssl make -j 8 && make install
不指定--prefix,表示默认路径为“/usr/local/pgsql”,因为只安装客户端采用最简安装。
图13 编译安装 - 配置环境变量,在“/etc/profile”文件中添加以下内容。
export path=/usr/local/pgsql/bin:$path export ld_library_path=/usr/local/pgsql/lib:$ld_library_path source /etc/profile
- 测试psql是否可使用。
psql -v
图14 测试psql可用
- 要支持ssl,需要在ecs上提前下载openssl。
步骤4:使用命令行连接实例(ssl加密)
- 在rds“实例管理”页面,单击实例名称进入“概览”页面。
- 选择“连接管理”。
- 在“连接信息”模块,单击“ssl”处的
,下载“certificate download”压缩包,解压后获取根证书(ca.pem)和捆绑包(ca-bundle.pem)。
图15 下载证书 - 将根证书(ca.pem)上传到ecs。
- 推荐使用tls v1.2及以上协议,低于该版本可能存在安全风险。
- 协议算法推荐使用eecdh ecdsa aesgcm:eecdh arsa aesgcm:edh arsa aesgcm:edh adss aesgcm:!anull:!enull:!low:!3des:!md5:!exp:!srp:!rc4,使用其他选项可能存在安全风险。
- 根证书捆绑包(ca-bundle.pem)包含2017年4月之后的新根证书和原有根证书。
- ca.pem和ca-bundle.pem都可以实现ssl连接,ca-bundle.pem文件包含ca.pem,使用ca.pem即可。
- 在ecs上执行以下命令连接rds for postgresql实例。
psql --no-readline -h
-p "dbname= " 示例:
psql --no-readline -h 192.168.0.7 -p 5432 "dbname=postgres user=root sslmode=verify-ca sslrootcert=/root/ca.pem"
- 出现如下提示时,输入数据库账号对应的密码。
password:
出现如下信息,表示连接成功。ssl connection (protocol: tlsv1.2, cipher: ecdhe-rsa-aes256-gcm-sha384, bits: 256, compression: off)
常见问题
相关文档
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨