PostgreSql安装版本是14.5,安装环境是Redhat Enterprise Linux server 7.7
下载好源码安装包上传linux的/usr/local/src,然后解压
cd /usr/local/src
tar -zxvf postgresql-14.5.tar.gz
创建postgres用户
useradd postgres
mkdir /usr/local/pgsql
chown postgres /usr/local/pgsql
mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
touch /usr/local/pgsql/pgsql.log
chown postgres /usr/local/pgsql/pgsql.log
这里需要注意,在编译前一定要安装C compiler(C语言编译器),如果没有安装,执行yum install -y gcc* 安装即可
cd /usr/local/src/postgresql-14.5
./configure --prefix=/usr/local/pgsql --without-readline --without-zlib
这个过程需要一会儿,耐心等待。。。
make && make install
看到下图所示,表示编译安装完成。
这里需要切换到postgres用户下执行下面命令(不支持root下运行)
su - postgres
cd /usr/local/pgsql/bin
./initdb -D /usr/local/pgsql/data
./pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/pgsql.log start
如下图所示启动成功
为了方便后面的操作postgres命令,我们切换到root用户下配置一下环境变量
su - root
echo 'export PGHOME=/usr/local/pgsql' >> /etc/profile
echo 'export PGDATA=$PGHOME/data' >> /etc/profile
echo 'export PATH=$PATH:$PGHOME/bin' >> /etc/profile
source /etc/profile
如下图所示,环境变量配置成功
我们再次切换到postgres用户下,执行postgres的命令看看,是不是很方便了
查询postgres服务状态
pg_ctl status
启动postgres服务
pg_ctl start
重启postgres服务
pg_ctl restart
停止postgres服务
pg_ctl stop
登录数据库不指定用户,默认是以postgres登录postgres数据库
psql
创建数据库用户
create user jamy password '123456'; 创建数据库用户jamy,密码为123456
创建数据库
create database test; //没有指定数据库所属者
create database test owner jamy; //指定数据库所属者为jamy用户
登录指定用户和数据库登录
psql -U jamy -W test
给数据库授权
grant all privileges on database test to jamy;
查看数据库列表
\l
切换数据库
\c //切换到test数据库 \c test;
退出数据库用户
\q 或者 exit 或者quit
查看数据库用户权限列表
\du
客户端登陆需要修改两个配置文件
cd /usr/local/pgsql/data
vim postgresql.conf
将listen_addresses = ‘localhost’ 改成 listen_addresses = '*'
vim pg_hba.conf
在# IPv4 local connections:下面添加如下内容
host all all 0.0.0.0/0 password
pg_ctl restart
在用客户端连接之前要关闭防火墙或者是放行5432端口,否则客户端也无法连接
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
放行5432端口
firewall-cmd --permanent --zone=public --add-port=5432/tcp
执行完上述命令后重启下服务器,然后启动下数据库服务
su - postgres
pg_ctl start
现在可以用navicat客户端连接数据库,这里选择用jamy用户登录test数据库,如下所示连接成功