linux下安装PostgreSQL可采用三种方式,二进制已编绎安装包、安装、源码安装三种方式进行安装
方式1:yum安装,建议使用这种
参看官方文档如下地址:
sudo yum install -y
sudoyum install -y postgresql15-server
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
sudo systemctl enable postgresql-15
sudo systemctl start postgresql-15
默认postgreql 安装在/usr/pgsql-14,数据存储目录:/var/lib/pgsql/版本号/data,在实际生产中/var可能存在硬盘空间不足的问题,我们一般将数据存储目录放在挂载的硬盘如/data下( 包括配置文件,日志目录都在这个目录下)
只需要修改下启动参数即可!
vi /usr/lib/systemd/system/postgresql-15.service
修改为Environment=PGDATA=/data/postgresql/data #修改成新的数据库目录
systemctl daemon-reload #如果你是启动的状态下,修改的启动参数,那么就需要执行这个步骤,否则你关闭数据库会报错:Warning: postgresql-14.service changed on disk. Run 'systemctl daemon-reload' to reload units.
初始化即可完成初始化到新指定的目录了!注意需要先关闭数据库!前提是目录已经创建了,可以不提前创建最后一级的子目录,因为初始化的时候会自动创建最后一级的子目录!
[root@B-JS25-BASE79-00 data1]# /usr/pgsql-15/bin/postgresql-15-setup initdb
区别于源码安装的pgsql,源码安装的时候如下所示初始化直接-D指定其他目录:如下所示
/usr/local/pgsql/bin/initdb -D /data/postgresql/data
通过systemctl 启动pg的时候,需要找启动文件postgresql-15.service中的Environment=PGDATA配置中的目录,然后会找到配置文件postgresql.conf,并会读取里面的参数data_directory的配置的数据目录;
1)/usr/lib/systemd/system/postgresql-15.service 文件中的Environment=PGDATA=/data/postgresql/data这个路径, 控制初始化的路径,并且决定启动的时候去哪里找配置文件postgresql.conf
2)vim /etc/postgresql/9.6/main/postgresql.conf --data_directory参数控制数据库的数据文件目录!
data_directory=‘/data/postgresql/datafile’
3)修改/usr/lib/systemd/system/postgresql-15.service后,建议执行reload
systemctl daemon-reload
4)数据文件的目录需要是700或者750,否则报错,报错信息如下
data_directory=‘/data/postgresql/datafile’ #这个参数指定的目录需要是700或者750权限
Nov 15 00:31:46 B-JS25-BASE79-00 postmaster[1773]: 2022-11-15 00:31:46.799 CST [1773] DETAIL: Permissions should be u=rwx (0700) or u=rwx,g=rx (0750)
5)注意:/usr/lib/systemd/system/postgresql-15.service里面的Environment=PGDATA=/data/postgresql/data和postgresql.conf 中data_directory参数指定的路径需要保证一样!否则无法启动
方式2:二进制已编绎安装包,解压即可启动,这个好像不是官网的,感觉可下载的版本不全!
方式3:源码安装
1、下载postgresql最新版:
2、解压文件:
tar zxvf postgresql-8.3.7.tar.gz
cd postgresql-8.3.7
3、编译,指定安装postgresql的路径
./configure --prefix=/usr/local/pgsql
4、编译:
make
5、安装:
make install
6、创建用户组和用户:
groupadd postgres
useradd -g postgres postgres
7、创建数据库库文件存储目录、给postgres赋予权限:
mkdir /usr/local/pgsql/data
cd /usr/local/pgsql
chown postgres.postgres data
chmod 750 /usr/local/pgsql/data
8、编辑~/.bash_profile文件
#vi ~/.bash_profile
设置以下的环境变量,
export PGHOME=/usr/local/pgsql
export PGDATA=/usr/local/pgsql/data
PATH=$PATH:$PGHOME/bin
export PATH
9、初始化数据库目录:
切换用户(root也可以)
su - postgresql
初始化数据 -D指定初始化创建的数据库的文件路径
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
转自
linux安装postgresql三种方式_ITPUB博客
http://blog.itpub.net/29654823/viewspace-2923532/