使用华为云鲲鹏弹性云服务器部署PostgreSQL

举报
炒香菇的书呆子 发表于 2022/01/12 23:44:32 2022/01/12
【摘要】 使用华为云鲲鹏弹性云服务器部署PostgreSQL,默认已经注册华为云账号,预装了CentOS系统的鲲鹏云服务器,安装、部署、测试PostgreSQL项目。

使用华为云鲲鹏弹性云服务器部署PostgreSQL,默认已经注册华为云账号,预装了CentOS系统的鲲鹏云服务器,安装、部署、测试PostgreSQL项目。

1. 登录鲲鹏服务器

选择控制台,点击“服务列表”->“计算”->“弹性云服务器ECS”进入服务器列表,在此可查看或复制云服务器的公网IP【EIP】。

image-20220112222748057

image-20220112223000925

①打开Terminal,输入以下命令登录云服务器;

②接受秘钥输入“yes”,回车;

③输入密码:使用预置环境信息中云服务器名称为ecs-postgresql的用户密码(输入密码时,命令行窗口不会显示密码,输完之后直接键入回车)。成功登录云服务器之后如下图所示:

image-20220112223051467

2. 安装PostgreSQL数据库依赖

什么是PostgreSQL数据库?PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS)。PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言等。另外,因为许可证的灵活,任何人都可以以任何目的免费使用、修改和分发PostgreSQL。

在终端输入下列命令

yum -y install readline-devel zlib-devel gcc gcc-c++ zlib readline

解压压缩文件,运行指令如下:

tar -zxvf postgresql-10.3.tar.gz -C /opt/

进入解压缩的PostgreSQL数据库目录,指令如下:

cd /opt/postgresql-*/

配置编译安装环境:(说明:–build指明编译环境,–host指明运行环境,–prefix指明安装路径)

image-20220112223500241

开始编译安装,指令如下:

make && make install && make clean

等待大约5分钟执行成功,如下图所示,至此PostgreSQL数据库安装完毕:

image-20220112223931456

3. 配置运行环境

3.1. 授权用户

添加用户和用户组 postgres,运行指令如下

adduser postgres

将安装目录下的数据授权给postgres用户:

chown -R postgres:postgres /usr/local/pgsql

执行查看指令:

ls -ld /usr/local/pgsql

结果如下图所示:

image-20220112224044812

3.2. 配置环境变量

什么是环境变量?环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。

切换到postgres用户(以后的指令都是在postgres用户下执行),指令如下:

su postgres

打开文件.bash_profile,

vim ~/.bash_profile

然后按键盘的“i”键进入编辑模式,在文档的最后输入以下内容:

export PGHOME=/usr/local/pgsqlexport PGDATA=/usr/local/pgsql/dataexport PATH=$PATH:$PGHOME/bin

按键盘上“Esc”键退出编辑模式,输入保存并退出当前编辑文件指令“:wq”,如图所示:

image-20220112224129141

回车,结果如下图:image-20220112224141889

3.3. 检验配置结果

使配置环境变量生效,这意味着在使用PostgreSQL数据库相关的指令和路径时避免输入全路径(如:/user/local/pgsql/bin/psql可以直接输入psql)。指令如下:

source  ~/.bash_profile

检验环境变量是否配置成功正确:

psql -V

配置成功并生效时会显示当前安装的PostgreSQL数据的版本,结果如图所示:

image-20220112224337195

4. 运行数据库服务

4.1.初始化数据库

设置环境变量完成后,直接执行“initdb”即可完成pg数据库初始化,自动生成对应的相关目录文件:

initdb

运行结果如图所示:

image-20220112225001298

4.2. 启动数据库服务

创建数据库日志文件路径,指令如下

mkdir -p /usr/local/pgsql/log

修改日志文件路径访问权限,赋予/usr/local/pgsql/log目录拥有者可读可写可进入的权限,以及其他用户可读可进入的权限:

chmod 755 /usr/local/pgsql/log

启动数据库,指令如下:

pg_ctl -D $PGDATA  -l  $PGHOME/log/pg_server.log start

执行结果如下图所示:

image-20220112225717465

4.3.检查启动结果

检查postgres 的进程,指令如下:

ps -ef | grep "postgres"

执行结果如下图所示:

image-20220112225932492

检查服务端口(默认5432),指令如下:

netstat -nlp | grep "postgres"

执行结果如下图所示:

image-20220112230120577

5.修改数据库配置

修改PostgreSQL数据库为可远程访问,用以提供数据存储服务。

5.1.设置数据库密码

数据库登录指令如

psql

设置postgres 用户访问数据库密码,指令如下:

password postgres

按回车键后出现为数据库用户“postgres”设置密码的区域(输入密码时,命令行窗口不会显示密码。密码自定义,如OMnwaaqZak1ka328),输完之后直接回车,根据提示再次输入密码进行确认。密码设置成功如下图所示:

image-20220112230522137

####5.2. 修改数据库配置为远程访问

如何在vim下进行快速查找?Linux中使用vim指令进行文档编辑时,有时想快速找到某一行号或某一个关键字,操作如下:1、查找n(n是数字)行的方式,打开文档后连续按n、shift+g可以快速定位的n行。2、查找关键字,打开文档按“/”,然后输入要查找的内容(会在终端的左下方显示输入内容),最后按回车键可以迅速找到指定内容。

打开配置文件“postgresql.conf”,指令如下

vim /usr/local/pgsql/data/postgresql.conf

然后连续按5、9、shift+G键找到59行【#listen_addresses=‘localhost’】,再按“i”键进入编辑模式,修改数据库服务监听范围。将listen_addresses 的值由“localhost”替换为任意地址“”号,并取消注释开头的“#”号,即最终为【listen_addresses=’’】。按键盘的“Esc”键退出编辑模式,输入保存并退出当前文档编辑的指令“:wq”,如图所示:

image-20220112231015105

5.3.修改访问地址控制设置

打开配置文件“data/pg_hba.conf”,指令如下:

vim /usr/local/pgsql/data/pg_hba.conf

然后连续按8、5、shift+G键找到85行【# IPv4 local connections:#】,再按键盘的“i”键进入编辑模式,在86行下方新增一行:

host    all             all             0.0.0.0/0               md5

说明:0.0.0.0/0表示运行任意ip地址访问。修改配置文件“data/pg_hba.conf”中的访问地址控制的设置,允许访问数据库服务的IP地址。确认无误(各段需按键盘“Tab”键缩进与上方各段对应整齐)后按键盘“Esc”键退出编辑模式,然后输入保存并退出当前文档编辑操作的指令“:wq”,如下图所示:

image-20220112231557985

5.4.开放安全组(5432)端口

什么是安全组?安全组是一个逻辑上的分组,为同一个VPC内具有相同安全保护需求并相互信任的弹性云服务器提供访问策略。安全组创建后,用户可以在安全组中定义各种访问规则,当弹性云服务器加入该安全组后,即受到这些访问规则的保护。系统会为每个用户默认创建一个默认安全组,默认安全组的规则是在出方向上的数据报文全部放行,入方向访问受限,安全组内的弹性云服务器无需添加规则即可互相访问.

依次选择“控制台”->“服务列表”->“网络”->“虚拟私有云VPC”,进入“网络控制台”,点击左侧“访问控制”->“安全组”,查看安全组列表,如图所示:

image-20220112231903815

选择当前服务器所在的安全组,点击进入,选择“入方向规则”->“添加规则”,弹出的“添加入方向规则”表单中,填写配置参数如下:协议端口:自定义TCP,5432;源地址:IP地址 0.0.0.0/0;描述:随意输入规则说明,点击“确定”。

image-20220112232111254

6. 访问数据库服务

利用telnet远程访问PostgreSQL服务。

####6.1. 检测数据库服务

重启PostgreSQL数据库服务,指令如下

pg_ctl restart

image-20220112232212696

退出当前用户登录,指令如下:

exit

image-20220112232331879

安装telnet,指令如下:

yum install telnet -y

image-20220112232634032

检测数据库服务,指令如下:将EIP替换为同2.1步骤中的云服务器的弹性公网IP地址

telnet EIP 5432

访问成功如下图所示:

image-20220112233030919

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。