首页 > 数据库 >linux安装postgresql三种方式【转】

linux安装postgresql三种方式【转】

时间:2023-12-06 12:00:29浏览次数:47  
标签:postgresql local pgsql 三种 usr linux 15 data

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/

标签:postgresql,local,pgsql,三种,usr,linux,15,data
From: https://www.cnblogs.com/paul8339/p/17879197.html

相关文章

  • linux-JDK安装配置
    查看是否安装jdk java-version 如果已经安装jdk,先卸载原来的卸载方式查看java安装路径whichjava卸载rm-rf"安装路径"修改或者删除原来环境变量vim/etc/profile#然后source命令让修改后的profile文件立即生效source/etc/profile 开始正式安装配置   ......
  • linux常用命令
    linux常用命令检索全网882篇文章,总结了以下19个答案01ls命令10%结果提及ls命令是列出目录内容(ListDirectoryContents)的意思,也可以用来查看目录中的文件或文件夹。02cat10%结果提及cat命令可以用来连接多个文本文件,并且可以将它们显示在......
  • Kali Linux 2023.4 发布 (Cloud ARM64, Vagrant Hyper-V & Raspberry Pi 5)
    KaliLinux2023.4发布(CloudARM64,VagrantHyper-V&RaspberryPi5)请访问原文链接:https://sysin.org/blog/kali-linux-2023/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org更新说明今天(2023-12-05),KaliLinux2023.4镜像下载已经可用,但是发行说明未知,官方......
  • Linux安装Tomcat
    安装Tomcat并以普通用户运行正常启动tomcat的方法是通过bin目录下的catalina.sh或者bin目录下的start.sh脚本进行启动,但是这样启动的tomcat都是root用户。在bin目录下还有一个daemon.sh的脚本,我们可以通过此脚本启动tomcat,不过首先需要指定具体的运行用户 修改daemon.sh脚本,找......
  • Linux磁盘扩容(非lvm)操作手册
    Linux磁盘扩容(非lvm)操作手册文章目录Linux磁盘扩容(非lvm)操作手册1.磁盘查看及新磁盘添加扫描(非关机)2.非逻辑卷扩容3.重载及挂载早期Linux只支持MBR,后面支持了MBR和GPT两种类型。长期使用传统的分区工具一般都是用fdisk,但是fdisk是很早用法,它只支持MBR(MasterBootRecord......
  • Linux查找java安装路径
    先看java-version$javaversion"1.8.0_111"Java(TM)SERuntimeEnvironment(build1.8.0_111-b14)JavaHotSpot(TM)64-BitServerVM(build25.111-b14,mixedmode)然后:echo$JAVA_HOME不一定有如果没有,那就要找一下先$whichjava/usr/bin/java再找到/usr/bin/java的超链接......
  • 【Linux】CentOS 6.10 内存分配
    确定centos系统采用的是lvm分区格式从vg_ran02-lv_home分区取出512G的空间添加到根目录vg_ran02-lv_root分区上卸载vg_ran02-lv_home分区umount/home如有提示则按如下方式进行:先查看当前/home被哪个进程占用;再杀死该进程即可;重复上述步骤fuser-m/homekill-9当前......
  • Linux学习之存储管理
    7.2基本分区7.2.1添加新硬盘在虚拟机上为系统添加两块10GiB虚拟硬盘sdb和sdc,可使用lsblk命令查看新添加的两个硬盘7.2.2MBR分区fdisk-l可以查看系统所挂硬盘个数及分区情况输入m参数可以帮助查看信息,了解每个参数的具体作用,分区具体操作输入n参数可以创建新的分区选择主分......
  • # Linux操作补充
    取消高亮显示空格和Tabgvim~/.vimrc#在.vimrc文件中setnohls#shell中执行source~/.vimrc./vimrc是Gvim的配置文件Gvim新建窗口:tabnew#切换窗口(坐下上右切换)ctrl+w+h/j/k/l设置链接可以将一些路径进行设置快捷方式,方便在项目中进行访问ln-sfile_......
  • Linux_315_Ansible模块之定时任务管理
    ansible的cron模块来添加任务1、添加定时任务,每5分钟进行时间同步ansibleyu-mcron-a"name=ntp_cronjob='/usr/sbin/ntpdatentp.aliyun.com>/dev/null2>&1'minute=*/5"2、远程的查看定时任务是否添加ansibleyu-mshell-a"crontab-l"3、再添加一个记录,事件是......