在Linux环境下安装PostgreSQL

发布时间 2023-06-23 11:32:51作者: 柯南。道尔

在Linux环境下安装PostgreSQL

由于实际的生产环境,PostgreSQL数据库都是部署在linux服务器上的,因此记录一下通过源码安装与命令行操作PG数据库的过程

下载

官方下载网址:https://www.postgresql.org/ftp/source/

我这里下载的是PostgresSQL源码版本为:postgresql-13.3.tar.gz

安装

1.创建postgres用户与用户组

--创建postgres用户组
groupadd postgres
--创建postgres用户,其用户组为postgres
useradd postgres -g postgres

2.安装必需依赖

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

3.解压源码包并进行编译

--解压源码包
tar -zxvf postgresql-13.3.tar.gz
--解压出 postgresql-13.3文件夹,移动到指定路径下
mv postgresql-13.3 /opt/
--创建一个路径用于存放编译后的postgresql
mkdir /opt/postgresql
--进入postgresql-13.3路径下,编译源码并将编译后的postgresql存放在/opt/postgresql路径下
cd /opt/postgresql
./configure --prefix=/opt/postgresql
--构建
make
--安装文件
make install

4.创建存放postgresql数据的目录,初始化数据库并启动

--在/opt/postgresql路径下创建数据目录pg_data
mkdir /opt/postgresql/pg_data
--修改数据目录的所属用户与用户组均为postgres
chown -R postgres:postgres /opt/postgresql/pg_data
--切换到postgres用户,并初始化数据库
su postgres
/opt/postgresql/bin/initdb -D /opt/postgresql/pg_data
--启动数据库,并将日志打印到pg.log文件上
/opt/postgresql/bin/pg_ctl -D /opt/postgresql/pg_data -l /opt/postgresql/pg_data/pg.log start

5.创建测试数据库,修改超级管理员postgres的密码

--创建test数据库
/opt/postgresql/bin/createdb test
--访问test数据库
/opt/postgresql/bin/psql test
--修改管理员postgres的密码为postgres
ALTER USER postgres WITH PASSWORD 'postgres';

修改配置

远程连接授权

--修改pg_hba.conf文件
vi /opt/postgresql/pg_data/pg_hba.conf
修改IPV4的连接
# IPv4 local connections:
host    all             all             0.0.0.0/0            trust
--修改postgresql.conf文件
vi /opt/postgresql/pg_data/postgresql.conf
修改listen_address为任意ip
listen_addresses = '*' 
--完成修改后重启数据库
/opt/postgresql/bin/pg_ctl -D /opt/postgresql/pg_data -l /opt/postgresql/pg_data/pg.log restart

psql常用命令

命令行中使用的psql命令

参数 参数含义
-h 数据库服务器的IP
-p 数据库服务器的端口号
-U 连接数据库服务器时使用数据库用户
-w 连接服务器时不需要输入用户密码(默认不输入用户密码)
-W 连接服务器时需要输入用户密码
-d 指定要连接的数据库(默认连接postgres数据库)
-c 执行单一的SQL命令
-f 执行sql脚本文件
-V 输出版本信息
--连接本地数据库,端口号为5432,使用postgres用户,连接test数据库
./psql -h 127.0.0.1 -p 5432 -U postgres -d test
--执行sql脚本文件/root/pg.sql
./psql -h 127.0.0.1 -p 5432 -U postgres -d test -f /root/pg.sql
--执行SQL语句
./psql -h 127.0.0.1 -p 5432 -U postgres -d test -c "sql_one;sql_two;"
--查看数据库版本
./psql -V

pg命令行中使用的psql命令

命令 含义
\h 查看sql语法
\l 列出所有数据库
\dn 列出所有schema(模式)
\db 显示所有表空间(相当于一个目录,表放在表空间中)
\d 查看当前schema中所有的表、视图、序列
\dt 只显示匹配的表
\di 只显示匹配的索引
\ds 只显示匹配的序列
\dv 只显示匹配的视图
\df 只显示匹配的函数
\sf 查看指定的函数定义
\du 列出数据库中所有用户
\dp 显示表的分配情况
\c 切换数据库
\q 退出pg命令行
--查看所有数据库
postgres=# \l
--显示pg内部的函数acos
postgres=# \df acos
--查询acos函数的函数定义
postgres=# \sf acos
--退出pg命令行
postgres=# \q

使用navicat远程连接postgresql

新建postgresql数据库连接,配置服务器中数据库的配置参数

参考网址

http://www.postgres.cn/docs/9.6/index.html

https://www.cnblogs.com/wsum/p/15522211.html

https://blog.csdn.net/Hehuyi_In/article/details/101305143