首页 > 数据库 >ubuntu22.04.3 安装postgresql 16 rc1数据库

ubuntu22.04.3 安装postgresql 16 rc1数据库

时间:2023-09-14 21:12:32浏览次数:48  
标签:postgresql 16 pgsql16rc1 ubuntu22.04 usr ctl local 数据库 pg

ubuntu22.04.3 安装postgresql 16 rc1数据库

一、直接安装

# Create the file repository configuration:

sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

# Import the repository signing key:

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

# Update the package lists:

sudo apt-get update

# Install the latest version of PostgreSQL.

# If you want a specific version, use 'postgresql-12' or similar instead of 'postgresql':

sudo apt-get -y install postgresql

二、源码安装

1、下载源码

https://ftp.postgresql.org/pub/source/v16rc1/postgresql-16rc1.tar.gz

2、解压源文件

tar xf postgresql-16rc1.tar.gz .

3、准备环境,系统必须安装好了gcc make readline zlib 等,建好文件目录

#创建目录
mkdir -p /usr/local/pgsql16rc1
mkdir -p /usr/local/pgsql16rc1/data
#目录授权
sudo chown pgsql:pgsql /usr/local/pgsql16rc1
sudo chown pgsql:pgsql /usr/local/pgsql16rc1/data
#安装依赖库和工具
sudo apt install gcc
sudo apt-get install libreadline-dev
sudo apt-get install zlib1g-dev
sudo apt install make
#配置
./configure --prefix=/usr/local/pgsql16rc1/ --without-icu
#编译安装
make
make install

4、初始化数据库

/usr/local/pgsql16rc1/bin/initdb -D /usr/local/pgsql16rc1/data/

5、启动数据库

/usr/local/pgsql16rc1/bin/pg_ctl -D /usr/local/pgsql16rc1/data/ -l logfile start

6、测试数据库

#创建test库
/usr/local/pgsql16rc1/bin/createdb test
#进入数据库控制台
/usr/local/pgsql16rc1/bin/psql test
test=# \d
test=# \d pg_stat_io
test=# \d pg_stat_all_tables
#创建postgres角色
test=# CREATE ROLE postgres WITH LOGIN PASSWORD 'postgres';
CREATE ROLE
test=# \q

7、配置数据库开放连接

#查看数据库监听端口
sudo netstat -tuln
#查看防火墙状态
sudo ufw status
#编辑postgresql.conf
vim /usr/local/pgsql16rc1/data/postgresql.conf
#修改配置
# - Connection Settings -

listen_addresses = '*'          # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost'; use '*' for all
                                        # (change requires restart)
port = 5432                             # (change requires restart)
max_connections = 100                   # (change requires restart)
#reserved_connections = 0               # (change requires restart)

#编辑pg_hba.conf
# IPv4 local connections:
host    all             all             0.0.0.0/32            trust

#重启数据库
/usr/local/pgsql16rc1/bin/pg_ctl restart -D /usr/local/pgsql16rc1/data -l logfile

8、配置数据库连接账号

/usr/local/pgsql16rc1/bin/psql -U postgres
postgres=> \password postgres
Enter new password for user "postgres":
Enter it again:
postgres=> exit
#添加超级用户
sudo -u postgres /usr/local/pgsql16rc1/bin/createuser --superuser <your_username>
#登录数据库
/usr/local/pgsql16rc1/bin/psql -U your_username -d database
#修改用户密码
 ALTER USER your_username WITH PASSWORD 'your_password';
#退出重启发现在还是不需要密码
#此时需要修改一下pg_hba.conf的认证方式,trust修改为md5  ,如果忘记密码可以反过来操作即可
# IPv4 local connections:
host    all             all             0.0.0.0/32            md5
#修改之后重启数据库,就需要密码登录连接数据库了

9、设置数据库开机启动

#/usr/lib/systemd/system/postgresql-16.service
#创建此文件
[Unit]

Description=PostgreSQL database server

After=network.target

[Service]

Type=forking

User=pgsql

Group=pgsql

Environment=PGPORT=5432

Environment=PGDATA=/usr/local/pgsql16rc1/data/

OOMScoreAdjust=-1000

ExecStart=/usr/local/pgsql16rc1/bin/pg_ctl start -D ${PGDATA} -s -o "-p ${PGPORT}" -w -t 300

ExecStop=/usr/local/pgsql16rc1/bin/pg_ctl stop -D ${PGDATA} -s -m fast

ExecReload=/usr/local/pgsql16rc1/bin/pg_ctl reload -D ${PGDATA} -s

TimeoutSec=300

[Install]

WantedBy=multi-user.target

#重新加载
systemctl daemon-reload
#启动数据库
systemctl start postgresql-16.service
#设置开机启动
systemctl enable postgresql-16.service

10、常用操作命令

使用 pg_ctl 命令

pg_ctl 命令为 PostgreSQL 服务端应用程序,可以用来初始化,启动和停止及控制 PostgreSQL 服务器。

pg_ctl 语法格式:

初始化数据库
pg_ctl init[db]   [-D DATADIR] [-s] [-o OPTIONS]

启动数据库
pg_ctl start      [-D DATADIR] [-l FILENAME] [-W] [-t SECS] [-s] [-o OPTIONS] [-p PATH] [-c]

关闭数据库
pg_ctl stop [-D DATADIR] [-M SHUTDOWN-MODE] [-W]

重启数据库
pg_ctl restart [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s] [-o OPTIONS] [-c]

重新加载 postgresql.conf 或 pg_hba.conf 文件
pg_ctl reload     [-D DATADIR] [-s]

查看服务器是否在指定的数据目录运行
pg_ctl status     [-D DATADIR]

pg_ctl提升 [-D DATADIR] [-W] [-t SECS] [-s]

pg_ctl logrotate  [-D DATADIR] [-s]

pg_ctl杀死信号名PID

命令选项

-D, --pgdata=DATADIR:指定数据库相关文件的数据目录,如果省略,默认读取 PGDATA 环境变量

-s, --silent:静默输出,仅仅输出错误消息

-t, --timeout=SECS:指定等待操作完成的最大延时秒数。默认为 PGCTLTIMEOUT 环境变量的值,如果省略,默认60秒

-V, --版本输出版本信息,然后退出

-w, --wait:等待操作完成,如果操作在延迟时间内未完成,pg_ctl 退出状态为非零

-W, --no-wait:不等待操作完成,不会提示数据库停止是否完成

启动 & 重启选项

-c, --core-files 允许 postgres 生成核心文件

-l, --log=FILENAME:将服务器日志输出追加到 filename中,也叫做服务器日志文件。如果该文件的 umask 设置为077,访问日志文件默认情况下其它用户不可读。

-o, --options=OPTIONS 命令行选项,以传递给 postgres(PostgreSQL 服务器可执行文件)或 initdb

-p 路径到POSTGRES通常不是必需的

启动 & 停止选项

-m, --mode=MODE:指定关闭数据库的模式,有三个选项,smart,fast,immediate,省略默认为fast

关库选项

smart:smart模式会等待活动的事务提交结束, 并等待客户端主动断开连接之后关闭数据库

fast:fast模式则会回滚所有活动的事务, 并强制断开客户端的连接之后关闭数据库(默认)

立即:模式立即终止所有服务器进程,当下一次数据库启动时它会首先进入恢复状态(不推荐使用)

标签:postgresql,16,pgsql16rc1,ubuntu22.04,usr,ctl,local,数据库,pg
From: https://www.cnblogs.com/lukezhangsz/p/17703448.html

相关文章

  • postgresql将表移动到另一个表空间
    创建新的表空间数据库版本pg12主机上创建表空间需要的目录[postgres@db1~]$cd/app/pg/tbs_test[postgres@db1~]$mkdirtbs_test使用root用户登录数据库,创建表空间并授权给u1用户使用mydb=#createtablespacetbs_testlocation'/app/pg/tbs_test';CREATETABLESPACEmydb......
  • 安装ubuntu22.04遇到的问题
    安装Ubuntu22.04遇到的问题镜像安装完成之后,无法开机,提示错误:AMD-V处于禁用状态​ 解决:进入bios中修改对应状态(3条消息)此主机支持AMD-V,但AMD-V处于禁用状态的解决办法_amdv处于禁用状态怎么办_素人岳的博客-CSDN博客更换国内镜像源:阿里源​ 解决:进入/etc/apt目录......
  • ubuntu22.04安装samba
    Ubuntu22.04安装samba使用samba-V命令查看虚拟机是否已经安装samba,如出现samba不是内部命令则需安装sudoaptinstallsamba:安装samba,如出现依赖问题安装失败,则有可能是镜像源与ubuntu版本不对应,修改镜像源。通过键入who查看当前用户,然后执行下面命令给该用户添加samba......
  • PostgreSQL-分区表介绍
    一、分区简介表分区是解决一些因单表过大引用的性能问题的方式,比如某张表过大就会造成查询变慢,可能分区是一种解决方案。一般建议当单表大小超过内存就可以考虑表分区了。表的分区就是将一个逻辑上的大表(主要指数据量大),切分为多个小的物理的分片。1.分区的优点1)在某些情况......
  • PostgreSQL技术大讲堂 - 第29讲:执行计划与成本估算
     PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUGPG技术大讲堂。 第29讲:执行计划与成本估算 内容1:PostgreSQL中查询执行......
  • Cisco Nexus 9000 系列交换机系统软件 NX-OS Standalone 10.4(1)F and ACI Mode 16.0(
    CiscoNexus9000系列交换机系统软件NX-OSStandalone10.4(1)FandACIMode16.0(3e)发布CiscoNexus9000SeriesSwitches,NX-OSStandalone10.4(1)FandACIMode16.0(3e)includeApplicationPolicyInfrastructureController(APIC)Release6.0(3e)请访问原文链......
  • 16个桌面Linux用户必须要知道的Shell命令
    有些人仍然会有这中愚蠢的想法,他们认为使用Linux就必须使用Linuxshell命令。胡说!你可以不懂得任何Linux命令,比如说ps,grep,ls等,但是你仍然可以使用很多现代的Linux桌面发行版。Linux的系统管理员与桌面用户不一样,他们不像桌面用户一样使用Cinnamon,GNOME,Unity,或者KDE,他们所......
  • 从Go1.16开始,ioutil.ReadAll、ioutil.ReadFile和ioutil.ReadDir被弃用
    废弃ioutil包后的替换函数ioutil.ReadAll->io.ReadAllioutil.ReadFile->os.ReadFileioutil.ReadDir->os.ReadDirothersioutil.NopCloser->io.NopCloserioutil.ReadDir->os.ReadDirioutil.TempDir->os.MkdirTempioutil.TempFile->os.CreateT......
  • ubuntu22.04安装并初始化postgresql
    ubuntu22.04自带其实是有数据库的,通过以下命令可以查看当前数据库的版本信息aptshowpostgresql 如果要安装新的数据库,可以执行以下命令sudoaptupdatesudoaptinstallpostgresqlpostgresql-contribpostgresql-contrib或者说contrib包,包含一些不属于P......
  • 因材施教,儿童电动牙刷具备压力传感算法MP3芯片,N9300-S16
    在孩子健康成长的道路上,每一个细节都至关重要。作为父母,始终希望能为孩子提供最好的护理与关爱。现在,电动牙刷有了全新的N9300-S16儿童电动牙刷方案,电动牙刷不仅可以保障孩子的口腔健康,还能为他们创造一种乐趣与安全的刷牙体验。科技与关爱的完美结合N9300-S16MP3芯片带来了前所未......