一、安装环境
类型 | 版本 |
---|---|
操作系统 | CentOS 7.9 |
postgresql | 15.2 |
二、提前准备
2.1 下载安装包
下载地址: https://www.postgresql.org/ftp/source/ ,这里我选择的是15.2,下载文件: postgresql-15.2.tar.gz
2.2 安装依赖包
在要安装postgresql数据库的服务器上执行以下命令安装所需要的依赖包:
yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel openldap-devel python-devel gcc-c++ openssl-devel cmake
三、安装postgres
类型 | 目录 |
---|---|
PG源码解压目录 | /opt/postgresql-15.2 |
PG安装目录 | /opt/postgresql |
PG数据目录 | /opt/postgresql/data |
3.1 解压安装包
tar xvf postgresql-15.2.tar.gz
3.2 编译postgresql源码
cd /opt/postgresql-15.2
./configure --prefix=/opt/postgresql
安装选项解释:
选项 | 描述 |
---|---|
–prefix=prefix | 安装到prefix指向的目录;默认为/usr/local/pgsql |
–bindir=dir | 安装应用程序到dir;默认为prefix/bin |
–with-docdir=dir | 安装文档到dir;默认为prefix/doc |
–with-pgport=port | 设置默认的服务器端网络连接服务TCP端口号 |
–with-tcl | 为服务端提供Tcl存储过程支持 |
–with-perl | 为服务端提供Perl存储过程支持 |
–with-python | 为服务端提供Python存储过程支持 |
3.3 安装
make && make install
安装完成后,进入/opt/postgresql目录可以看到安装后的postgresql的文件如下:
3.4 创建用户
groupadd postgres
useradd -g postgres postgres
id postgres
3.5 创建数据目录与修改权限
cd /opt/postgresql
mkdir data
chown postgres:postgres data
3.6 配置环境变量
su - postgres
vi .bash_profile
增加如下内容:
1 | export PGHOME=/opt/postgresql |
生效
source .bash_profile
3.7 初使用化数据库
使用postgres用户,执行:
initdb
这个时候可以看到 /opt/postgresql/data 已经有文件了。
3.8 配置服务
修改“/opt/postgresql/data”目录下两个文件
文件名 | 描述 |
---|---|
postgresql.conf | 配置PostgreSQL数据库服务器的相应的参数。 |
pg_hba.conf | 配置对数据库的访问权限。 |
postgresql.conf中,参数“listen_addresses”表示监听的IP地址,默认是在localhost处监听,也就是127.0.0.1的ip地址上监听,只接受来自本机localhost的连接请求,这会让远程的主机无法登陆这台数据库,如果想从其他的机器上登陆这台数据库,需要把监听地址改为实际网络的地址,一种简单的方法是,将行开头的#去掉,把这个地址改为*,表示在本地的所有地址上监听。
找到最下面这一行 ,这样局域网的人才能访问。红色为新添加内容。
1 | # IPv4 local connections: |
3.9 开机自启动
PostgreSQL的开机自启动脚本位于PostgreSQL源码目录的contrib/start-scripts路径下。
linux文件即为linux系统上的启动脚本
cd /opt/postgresql-15.2/contrib/start-scripts
使用root帐号修改linux文件权限
chmod a+x linux
cp linux /etc/init.d/postgresql #复制linux文件到/etc/init.d目录下,更名为postgresql
vi /etc/init.d/postgresql
修改/etc/init.d/postgresql文件的两个变量
prefix设置为postgresql的安装路径:/opt/postgresql
PGDATA设置为postgresql的数据目录路径:/opt/postgresql/data
设置postgresql服务开机自启动
chkconfig --add postgresql
3.10 启动
service postgresql start
四、测试
4.1 切换为postgres用户,进入客户端:
psql
create user quartz password 'quartz123';
ALTER ROLE quartz SUPERUSER;
create database wno_quartz;
GRANT ALL PRIVILEGES ON DATABASE wno_quartz TO quartz;
4.2 常见问题
连接PGSQL报错column “datlastsysoid“ does not exist Line1:SELECT DISTINCT datalastsysoid FROM pg_database
出现这个问题确实是数据库管理工具不支持PG15版本的绑定,需要更换数据库软件,或降低PGSQL的版本使用。