0.前言
随着mysql被甲骨文收购,越来越多的用户对mysql的未来充满了担忧,觉得社区免费版mysql可能是随着甲骨文的运营而消失,好在甲骨文并没有这么做,然而还是有越来越多的用户将目光投向了新出来的PostgreSQL。
作为一个年轻的数据库,pgsql有着如下的优点:
(1)开源性:PostgreSQL完全免费,而且是BSD协议;
(2)SQL实现:PostgreSQL在SQL的标准实现上非常完善,而且功能实现也比较严谨;
(3)可扩展性:PostgreSQL有丰富可扩展组件,作为contribute发布;
(4)表组织:PostgreSQL主表采用堆表存放,能够支持较大的数据量;
(5)主备复制:PostgreSQL的主备复制属于物理复制,数据的一致性更加可靠,复制性能更高;
(6)功能支持:PostgreSQL支持JSON和其他NoSQL功能,如本机XML支持和使用HSTORE的键值对,它还支持索引JSON数据以加快访问速度。
PostgreSQL到底有没有这么好呢,只有试过了才知道,今天就来部署一下PostgreSQL,试用一下基础的功能,看是否真的有传说中的好用。
1.pgsql安装包下载
pgsql的官方网站为:https://www.postgresql.org/
里面有详细的文档,大家在使用PostgreSQL遇到什么问题,都可以到官方文档找寻解决办法。
pgsql当前的最新版为17,不过本次部署我们使用14的最新版本14.15,安装包下载路径为:https://www.postgresql.org/ftp/source/v14.15/postgresql-14.15.tar.gz
下载完成之后将安装包上传到服务器指定目录:
ll ~/install
2.pgsql部署
本次部署pgsql,我们采用编译安装的方式,这样我们可以更好的了解pgsql部署的流程
2.1 解压安装包
首先我们解压一下刚刚下载的安装包,看下里面有些什么文件:
tar xf postgresql-14.15.tar.gz
ll postgresql-14.15
2.2 安装依赖
安装pgsql之前我们先安装需要的依赖
yum install -y zlib-devel readline-devel gcc
2.3 编译安装
准备工作已经做完了,现在我们开始编译安装pgsql:
cd ~/install/postgresql-14.15
./configure --prefix=/usr/local/pgsql14
make world
make install-world
执行完以上命令之后,pgsql就安装完成了,看下安装目录下有哪些文件:
ll /usr/local/pgsql14/
3.创建postgres用户
默认情况下都是使用postgres用户管理pgsql的,所以我们在初始化pgsql之前先创建 一个postgres用户:
useradd postgres
passwd postgres
设置好密码之后,用户就创建完成了。
4.初始化和启动
pgsql已经安装完成,接下来初始化一下pgsql,并启动服务之后就可以正常使用了。
4.1 创建数据目录并授权
创建数据目录,并授权给postgres用户,命令如下:
mkdir -p /data/postgresql/{data,log}
chown -R postgres:postgres /data/postgresql/
chmod 700 /data/postgresql/data/
以上便是pgsql德数据目录和日志目录。
4.2 初始化
数据目录初始化:
su - postgres
/usr/local/pgsql14/bin/initdb -D /data/postgresql/data
查看数据目录:
ll /data/postgresql/data
4.3 修改pgsql配置
为了让pgsql可以被远程访问,需要修改以下配置:
vim /data/postgresql/data/postgresql.conf
......
listen_addresses = '*' # what IP address(es) to listen on;
......
vim /data/postgresql/data/pg_hba.conf
......
# IPv4 local connections:
host all all 0.0.0.0/0 scram-sha-256
......
4.4 pgsql启动
初始化完成之后,启动pgsql即可,命令如下:
su - postgres
/usr/local/pgsql14/bin/pg_ctl -D /data/postgres/data -l /data/postgresql/log/pg.log start
4.5 登录并修改postgres账号密码
安装完成之后,我们尝试登录psql并修改postgres账号的密码,命令如下:
su - postgres
/usr/local/pgsql14/bin/psql
postgres=# ALTER USER postgres WITH PASSWORD 'Your_Password';
4.6 远程访问
navicat是可以远程访问postgres的,我们来基于navicat创建一个pgsql的远程连接:
依次输入远程连接地址,用户名和密码,正常情况就可以连接上了,到此pgsql就部署完成了。
5.结语
可以看到pgsql的部署还是非常简单的,其实pgsql的基础使用命令和mysql还是有很大不同的,后面就教大家试用下pgsql常见的基础命令。