首页 > 数据库 >ubuntu18源码安装postgresql15.2数据库

ubuntu18源码安装postgresql15.2数据库

时间:2024-04-27 18:24:00浏览次数:32  
标签:opt 15.2 postgresql postgres 数据库 源码 pg ubuntu18 postgresql15.2

由于官方的源只能安装到pg10这个版本,整了好一会没有成功就改为源码安装了。

下载源代码源码并解压

 wget https://ftp.postgresql.org/pub/source/v15.2/postgresql-15.2.tar.gz
 tar -xf  postgresql-15.2.tar.gz 
 cd postgresql-15.2/ 

安装C++相关开发库和编译工具

 apt install make gcc tar pkg-config libicu-dev libreadline-dev zlib1g-dev -y

开始编译

设置pg编译后的二进制包存放目录为/opt/postgresql-15.2

sudo ./configure --prefix=/opt/postgresql-15.2
make
make install

执行./configure 和make 需要几分钟时间。执行完成后 如果没有报错则表示编译源码完成。接下来进入二进制包目录中,创建data logs目录 用于存放数据和日志,

cd /opt/postgresql-15.2
#用于存放数据和日志,
mkdir {data,logs}
#授权给postgres账户 如果还没有postgres账号需要创建
groupadd postgres
useradd -g postgres postgres
chown -R postgres:postgres /opt/postgresql-15.2

此目录也可以打包成tar.gz压缩包供以后再次安装使用,就不需要再去重新编译了。

初始化数据库和启动数据库

开始之前先切换至postgres账户su postgres

#切换账号
su postgres
#进入安装目录
cd /opt/postgresql-15.2
#初始化数据库 这一步如果成功了 会打印启动数据库的命令。如果没有就是失败了
bin/initdb -D /opt/postgresql-15.2/data
#使用pg_ctl启动数据库
bin/pg_ctl -D /opt/postgresql-15.2/data -l /opt/postgresql-15.2/postgresql.log start
#可以创建一个test数据库试一下 这一步可以不操作
bin/createdb test

常用配置

pg的配置文件默认存放在数据库中。常用的配置文件有:
1、postgresql.conf 主要是数据库服务器的全局配置
2、pg_hba.conf 客户端认证规则,配置了哪些用户和哪些IP地址可以连接到数据库服务器。

配置运行远程访问
  • data/postgresql.conf文件
    listen_addresses = ' * ' #改为*表示监听任意网卡的端口 默认为localhost
  • data/pg_hba.conf文件
    host all all 0.0.0.0/0 trust #新写入一条规则 允许所有IP 所有数据库访问
配置账号密码

输入psql命令行 默认使用postgres账户进入数据库

#修改postgres密码
ALTER USER postgres WITH PASSWORD 'postgres'; 
#登录数据库
psql 

制作系统systemd服务

使用systemd服务主要是方便pg数据库的启动和停止 方便交给systemd去管理,也能设置开机自启动。
开始之前先停止上面手动启动的数据库。因为要基于systemd服务启动。

bin/pg_ctl -D /opt/postgresql-15.2/data -l /opt/postgresql-15.2/postgresql.log stop

创建文件 vim /etc/systemd/system/postgresql.service

[Unit]
Description=PostgreSQL
After=network-online.target

[Service]
Type=forking
WorkingDirectory=/opt/postgresql-15.2/bin
User=postgres
ExecStart=/opt/postgresql-15.2/bin/pg_ctl -D /opt/postgresql-15.2/data -l /opt/postgresql-15.2/logs/postgresql.log start
ExecStop=/opt/postgresql-15.2/bin/pg_ctl -D /opt/postgresql-15.2/data stop
Restart=always
RestartSec=40s
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=postgresql
PrivateTmp=true

[Install]
WantedBy=multi-user.target
  • 设置开机启动
    systemctl enable postgresql
  • 启动数据库
    systemctl start postgresql
  • 查看数据库状态
    systemctl status postgresql
  • 停止数据库
    systemctl stop postgresql

标签:opt,15.2,postgresql,postgres,数据库,源码,pg,ubuntu18,postgresql15.2
From: https://www.cnblogs.com/peachyy/p/18162330

相关文章

  • JDK源码分析-Vector
    概述Vector是Java集合中线程安全的动态数组,它也可以根据需要进行扩容和缩容,与ArrayList类似。但有一个重要的区别,Vector是同步的,也就是它的操作是线程安全的,在某些特定场景下是可以保证线程安全的,但同时也会带来性能损耗,因此在单线程环境通常还是推荐使用ArrayList。类图......
  • Nginx 源码安装
     Nginx官网:https://nginx.org参考:Nginx配置常用参数梳理https://www.jb51.net/server/285538k8k.htmnginx配置参数详解https://blog.csdn.net/u013286192/article/details/136418472Nginx配置详解https://www.runoob.com/w3cnote/nginx-setup-intro.html查看nginx开启......
  • springBoot源码(一)
    构造函数运行代码publicConfigurableApplicationContextrun(String...args){ Startupstartup=Startup.create(); if(this.registerShutdownHook){ SpringApplication.shutdownHook.enableShutdownHookAddition(); } DefaultBootstrapContextbootstrapConte......
  • JDK源码分析-LinkedList
    概述相较于ArrayList,LinkedList在平时使用少一些。LinkedList内部是一个双向链表,并且实现了List接口和Deque接口,因此它也具有List的操作以及双端队列和栈的性质。双向链表的结构如下:它除了作为List使用,还可以作为队列或者栈来使用。publicclassLinkedList<E>......
  • Java源码阅读-String中的private final char value[];
    /**Thevalueisusedforcharacterstorage.*/privatefinalcharvalue[];在Java的源码中是这样来实现String对字符串的存储的首先使用final关键字来修饰这个变量,来保证value不会被重写,确保字符串的内容在创建后不会被修改,从而保持字符串的不可变性。final是......
  • Java源码阅读-String.startsWith(String prefix, int toffset)
    /***Testsifthesubstringofthisstringbeginningatthe*specifiedindexstartswiththespecifiedprefix.**@paramprefixtheprefix.*@paramtoffsetwheretobeginlookinginthisstring.*@return{@codetrue}ifthecharacter......
  • JDK源码分析-ArrayList
    概述ArrayList是List接口的一个实现类,也是Java中最常用的容器实现类之一,可以把它理解为「可变数组」。Java中的数组初始化时需要指定长度,而且指定后不能改变。ArrayList内部也是一个数组,它对数组的功能做了增强:主要是在容器内元素增加时可以动态扩容,这也是ArrayList的......
  • lodash已死?radash最全使用介绍(附源码说明)—— Array方法篇(4)
    写在前面tips:点赞+收藏=学会!我们已经介绍了radash的相关信息和部分Array相关方法,详情可前往主页查看。本篇我们继续介绍radash中Array的相关方法的剩余方法。本期文章发布后,作者也会同步整理出Array方法的使用目录,包括文章说明和脑图说明。因为方法较多,后续将专门发布......
  • 25-Mybatis源码分析
    1.架构设计&测试代码1.1Mybatis四层架构【API接口层】提供API增加、删除、修改、查询等接口,通过API接口对数据库进行操作;【数据处理层】主要负责SQL的查询、解析、执行以及结果映射的处理,主要作用解析SQL根据调用请求完成一次数据库操作;【框架支撑层】负责通用基......
  • 18--Scrapy04--CrawlSpider、源码模板文件
    Scrapy04--CrawlSpider、源码模板文件案例:汽车之家,全站抓取二手车的信息来区分Spider和CrawlSpider注意:汽车之家的访问频率要控制一下,要不然会跳验证settings.py中设置DOWNLOAD_DELAY=3一、常规Spider#spiders/Ershou.pyimportscrapyfromscrapy.linkextra......