Linux安装PostGresql

这篇具有很好参考价值的文章主要介绍了Linux安装PostGresql。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


提示:以下是本篇文章正文内容,下面案例可供参考

一、PostGresql是什么?

PostgreSQL数据库是目前功能强大的开源数据库,支持丰富的数据类型(如JSON和JSONB类型、数组类型)和自定义类型。而且他提供了丰富的接口,可以很容易的扩展它的功能,如可以再GiST框架下实现自己的索引类型等。PostgreSQL是完全的事务安全性数据库,完整地支持外键、联合、视图、触发器和存储过程(并支持多种语言开发存储过程)。它支持了大多数的SQL:2008标准的数据类型,包括整型、数值值、布尔型、字节型、字符型、日期型、时间间隔型和时间型,它也支持存储二进制的大对像,包括图片、声音和视频。PostgreSQL对很多高级开发语言有原生的编程接口,如C/C++、Java、.Net、Perl、Python、Ruby、Tcl 和ODBC以及其他语言等

二、Linux 上安装 PostgreSQL

linux下安装PostgreSQL可采用三种方式,二进制已编绎安装包、yum安装、源码安装三种方式进行安装

1.环境准备

// 检查PostgreSQL 是否已经安装
rpm -qa | grep postgres 
// 检查PostgreSQL 安装位置
rpm -qal | grep postgres
// 卸载已安装PostgreSQL
rpm –e PostgreSQL版本
// 查看卸载是否已完成
rpm -qa | grep postgres

2.二进制已编绎安装包

2.1 下载二进制包

// 官网下载地址
https://www.enterprisedb.com/download-postgresql-binaries

linux 安装postgresql,linux,postgresql,运维

// 下载地址
https://get.enterprisedb.com/postgresql/postgresql-10.23-1-linux-x64-binaries.tar.gz

2.2 创建postgres用户

// 创建用户
useradd postgres
// 设置密码
passwd postgres

2.3 解压安装包

安装包放到 /home/postgres 下

// 创建目录
mkdir -p /home/postgres
//  解压安装包
tar -xvf postgresql-10.23-1-linux-x64-binaries.tar.gz -C /home/postgres/
// yum依赖
yum install -y gcc gcc-c++
yum install -y readline-devel
yum install -y zlib-devel

2.4 创建data目录

mkdir -p /home/postgres/pgsql
mkdir -p /home/postgres/pgsql/data   
mkdir -p /home/postgres/pgsql/logs  

2.4 启动登陆postgresql

//初始化
./bin/initdb -E utf8 -D /home/postgres/pgsql/data
//初始化结果返回
[postgres@localhost pgsql]$ ./bin/initdb -E utf8 -D /home/postgres/pgsql/data
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default text search configuration will be set to "english".

Data page checksums are disabled.

fixing permissions on existing directory /home/postgres/pgsql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default timezone ... PRC
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.

Success. You can now start the database server using:

    ./bin/pg_ctl -D /home/postgres/pgsql/data -l logfile start
//启动
./bin/pg_ctl -D /home/postgres/pgsql/data -l /home/postgres/pgsql/logs/pgsql.log start
//关闭
./bin/pg_ctl -D /home/postgres/pgsql/data stop
//登录postgresql数据库
./bin/pg_ctl -D /home/postgres/pgsql/data stop
//创建用户和数据库并授权
create user test_user with password '123456'; // 创建用户
create database test_db owner test_user; // 创建数据库
grant all privileges on database test_db to test_user; // 授权
// 退出psql(输入 \q 再按回车键即可
./bin/psql -h 127.0.0.1 -d test_db -U test_user -p 5432

// 开启远程访问
// 修改postgresql.conf文件,取消 listen_addresses 的注释,将参数值改为“*”

// 修改pg_hba.conf文件,增加下图红框部分内容
host    all             all             0.0.0.0/0            md5

3.yum安装PostgreSQL

安装过程官网参考
https://www.postgresql.org/download/linux/redhat/

3.1 安装

// Install the repository RPM:
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
// Install PostgreSQL:
sudo yum install -y postgresql13-server

3.2 指定数据目录

默认postgreql 安装在/usr/pgsql-13,数据存储目录:/var/lib/pgsql/13/data,在实际生产中/var可能存在硬盘空间不足的问题,我们一般将数据存储目录放在挂载的硬盘如/data

chown postgres:postgres /data/pgdata
chmod 750 /data/pgdataa

3.3 修改启动参数

$vi /usr/lib/systemd/system/postgresql-13.service
// 修改PGDATA参数,该参数会在 postgresql-13-setup initdb 中使用
Environment=PGDATA=/data/pgdata
// 重新加载服务配置文件
systemctl daemon-reload

3.4 初始化数据库

// 切换用户
su - postgres
// 初始化数据库
sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
// 设置开机自动启动
sudo systemctl enable postgresql-13

执行时报用户不在sudoers中,在使用Linux系统过程中,通常情况下,我们都会使用普通用户进行日常操作,而root用户只有在权限分配及系统设置时才会使用,而root用户的密码也不可能公开。普通用户执行到系统程序时,需要临时提升权限,sudo就是我们常用的命令,仅需要输入当前用户密码,便可以完成权限的临时提升。在使用sudo命令的过程中,我们经常会遇到当前用户不在sudoers文件中的提示信息,如果解决该问题呢?通过下面几个步骤,可以很简单的解决此问题。

// 查看/etc/sudoers文件权限,如果只读权限,修改为可写权限
[root@Compile user]# ls -l /etc/sudoers
-r--r-----. 1 root root 4030 925 00:57 /etc/sudoers
[root@Compile user]# chmod 777 /etc/sudoers
[root@Compile user]# ls -l /etc/sudoers
-rwxrwxrwx. 1 root root 4030 925 00:57 /etc/sudoers
[root@Compile user]#
// 执行vi命令,编辑/etc/sudoers文件,添加要提升权限的用户;在文件中找到root ALL=(ALL) ALL,在该行下添加提升权限的用户信息,如:
root ALL=(ALL) ALL
user ALL=(ALL) ALL
// 说明:格式为(用户名 网络中的主机=(执行命令的目标用户) 执行的命令范围)
// 保存退出,并恢复/etc/sudoers的访问权限为440
[root@Compile user]# chmod 440 /etc/sudoers
[root@Compile user]# ls -l /etc/sudoers
-r--r-----. 1 root root 4030 925 00:57 /etc/sudoers
[root@Compile user]#
// 切换到普通用户,测试用户权限提升功能

3.5 修改配置文件

// 配置 postgresql.conf
vi /data/pgdata/postgresql.conf
// 注解掉
# listen_address="*"

// 配置 pg_hba.conf
vi /data/pgdata/pg_hba.conf
// 增加一行
host all all 0.0.0.0/0 password


// 防火墙打开5432端口
firewall-cmd --zone=public --add-port=5432/tcp --permanent
// 重启防火墙
firewall-cmd --reload

3.6 启动数据库

// 停止数据库
sudo systemctl stop postgresql-13
// 设置开机自启动
sudo systemctl enable postgresql-13
// 启动数据库
sudo systemctl start postgresql-13
// 检查数据库状态
sudo systemctl status postgresql-13

3.7 修改数据库用户postgres密码


// 切换用户
su - postgres
// 连接PG
psql -U postgres
// 执行修改密码
ALTER USER postgres with encrypted password 'PASSWORD'

4.源码方式安装PostgreSQL

4.1 下载源码

从官网下载,地址:
https://www.postgresql.org/download/文章来源地址https://www.toymoban.com/news/detail-857352.html

//下载地址和选定的源码包
https://www.postgresql.org/download/
postgresql-14.0.tar.gz
// 安装GCC编译器,需要GNU make 3.80 或更新版本
yum -y install gcc
make --version

4.2 创建postgres用户

//创建用户
useradd postgres
//设置密码
passwd postgres

4.3 进行源码安装

//1.解压
tar -xvf postgresql-14.5.tar.gz -C /opt/

//2.yum依赖
yum install -y gcc gcc-c++
yum install -y readline-devel
yum install -y zlib-devel

//3.编绎,并安装到/opt/postgresql目录
mkdir /opt/postgresql
cd /opt/postgresql-14.5
./configure --prefix=/opt/postgresql
make
make install

//4.准备数据目录
mkdir -p /opt/postgresql/pgsqldata
chown -R postgres:postgres /opt/postgresql/pgsqldata

//5.切换到postgres用户
su postgres
/opt/postgresql/bin/initdb -D /opt/postgresql/pgsqldata #初始化数据库
mkdir /opt/postgresql/pgsqldata/logs
/opt/postgresql/bin/pg_ctl -D /opt/postgresql/pgsqldata -l /opt/postgresql/pgsqldata/logs/pgsql.log start #启动
/opt/postgresql/bin/createdb test #创建测试库
/opt/postgresql/bin/psql test #进入数据库

//6.修改管理员密码
ALTER USER postgres WITH PASSWORD '123456';

4.4 进行源码安装

// vi /opt/postgresql/pgsqldata/pg_hba.conf
host    all             all             0.0.0.0/0            md5
// vi //opt/postgresql/pgsqldata/postgresql.conf
listen_addresses = '*'
// /opt/postgresql/bin/pg_ctl -D /opt/postgresql/pgsqlData reload

// 配置防火墙端口
firewall-cmd --add-port=5432/tcp --permanent
firewall-cmd --reload

4.5 设置postgresql 服务自启动

// postgresql 服务
cat > /usr/lib/systemd/system/postgresql.service << EOF
[Unit]
Description=postgreSQL Server
After=network.target

[Service]
User=postgres
Group=postgres
Type=forking
TimeoutSec=0
PermissionsStartOnly=true
PIDFile=/opt/postgresql/pgsqldata/postmaster.pid
ExecStart=/opt/postgresql/bin/pg_ctl -D /opt/postgresql/pgsqldata -l /opt/postgresql/pgsqldata/logs/pgsql.log start
ExecReload=/opt/postgresql/bin/pg_ctl -D /opt/postgresql/pgsqldata reload
ExecStop=/opt/postgresql/bin/pg_ctl -D /opt/postgresql/pgsqldata stop
PrivateTmp=true

LimitNOFILE = 65535
Restart=on-failure
RestartSec=3
RestartPreventExitStatus=1
PrivateTmp=false


[Install]
WantedBy=multi-user.target
EOF

// 服务启动停止
systemctl daemon-reload
systemctl stop postgresql
systemctl start postgresql
systemctl enable postgresql

5.基本操作

// 查看当前的数据库列表
\l 

// 建表
create table test(
   id bigint ,
   name varchar(50),
   password varchar(30)
 );

// 插入
insert into test values(1,'test','123');

// 查询
select * from test;

//  查看pgsql版本
SELECT version();

// 查看用户名和密码
SELECT * FROM pg_authid;

//获取服务器上所有数据库信息
SELECT * FROM pg_database ORDER BY datname;

//获取所有库表信息
select * from pg_tables ORDER BY schemaname;

//获取当前
\d 库名 获取库中数据表名列表
\d 表名 获取表结构字段描述

//备份与还原
/opt/postgresql/bin/pg_dump -h localhost -U postgres -p 5432 -d test -s -f /root/data.sql
/opt/postgresql/bin/psql -h localhost -p 5432 -U postgres -W -d test < /root/data.sql


到了这里,关于Linux安装PostGresql的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux下postgresql的安装和部署

    1.官网下载安装包 PostgreSQL: File Browser    2. 下载成功后上传到Linux服务器  3.解压文件 1、创建一个安装目录 2.创建一个存储目录 3.进入解压包目录  4.执行初始化配置命令     尾部增加 更新环境变量 进入解压包目录 编译安装 进入安装目录下的bin 切换用户   初始化数据库

    2024年02月07日
    浏览(40)
  • Linux 上安装PostgreSQL-源码编译安装(超详细版!!!)

    服务器:CentOS Linux 7 (Core),4CPU 8GB  100GB磁盘。 最小配置 CPU: 至少 2 核心 内存: 至少 2 GB 硬盘: 至少 10 GB 空间,推荐使用 SSD 以提高性能 网络: 100 Mbps 场景:这种配置适用于轻量级的测试,如功能验证、小型应用的开发等。 推荐配置 CPU: 4 核心或以上 内存: 8 GB 或以上 硬盘:

    2024年01月23日
    浏览(90)
  • Linux 源码安装: PostgreSQL 15.6数据库

    💖The Begin💖点点关注,收藏不迷路💖 🍒 PostgreSQL 中文文档 下载地址:https://www.postgresql.org/ftp/source/ 安装结果: vi ~/.bashrc ,如果全局的则编辑/etc/profile。 可以执行以下命令查看 PostgreSQL 版本信息: 1、创建一个名为 postgresql.service 的服务单元文件: 编辑 /etc/systemd/system/p

    2024年03月24日
    浏览(83)
  • Linux下PostgreSQL-12.0安装部署详细步骤

    一、安装环境 postgresql-12.0 CentOS-7.6 注意:确认linux系统可以正常连接网络,因为在后面需要添加依赖包。 二、pg数据库安装包下载 下载地址:PostgreSQL: File Browser 选择要安装的版本进行下载: 三、安装依赖包 在要安装postgresql数据库的Linux服务器上执行以下命令安装所需要的依

    2024年04月13日
    浏览(43)
  • Linux服务器上的Postgresql 安装与配置

    首先说明下我安装的是Postgresql 版本为12.4 官网下载地址: https://ftp.postgresql.org/pub/source/v12.4/postgresql-12.4.tar.gz 准备好 postgresql 的安装包,以下操作以 12.4 版本为例。 建议 使用 root 用户新建普通用户“postgres”仅用于安装 postgresql 数据库。 请在root用户下操作,命令如下: 请记

    2024年02月07日
    浏览(45)
  • Linux下安装Elasticsearch(1),面试字节跳动Linux运维工程师该怎么准备

    network.host: 0.0.0.0 # 绑定到0.0.0.0,允许任何ip来访问 我们把data和logs目录修改指向了elasticsearch的安装目录。但是这两个目录并不存在,因此我们需要创建出来。 进入elasticsearch的根目录,然后创建: mkdir data mkdir logs 目前我们是做的单机安装,如果要做集群,只需要在这个配置

    2024年04月25日
    浏览(43)
  • Linux服务器快速安装PostgreSQL15以及pgvector向量插件

    最近开始体验FastGPT或Dify等开源知识库问答系统,用他们试着开发调试一些小助手。这中间需要使用到PostgreSQL,就在自己服务器上进行了安装,特此记录下。 环境说明:阿里云ECS,2核8G,X86架构,CentOS 7.9操作系统。 1.打开PostgreSQL官网下载页面,选择操作系统和数据库版本。

    2024年02月04日
    浏览(62)
  • Linux CentOS 7.x离线安装PostgreSQL操作手册

    rpm -qa | grep postgres 检查PostgreSQL 是否已经安装 rpm -qal | grep postgres 检查PostgreSQL 安装位置 postgresql-12.2.tar.gz 下载地址: http://www.postgresql.org/ftp/source/ 选择你你需要的版本,本次安装12.2的版本 1.在线在安装pgsql数据库的Linux上,执行以下命令安装所需要的依赖包: yum install -y perl-ExtUti

    2024年02月08日
    浏览(52)
  • 第二章:死磕postgreSQL,windows、mac、linux系统的安装详解

    本文介绍了在不同操作系统上安装PostgreSQL的详细步骤。对于Windows系统,用户可以从PostgreSQL官方网站下载安装程序,并按照提示进行安装。在macOS系统上,常见的安装方法是使用Homebrew包管理器。用户可以通过终端命令安装Homebrew,并使用其安装PostgreSQL。对于Linux系统,安装方

    2024年02月13日
    浏览(47)
  • 【PostgreSQL在Windows、Linux和Docker上的保姆级安装教程】

    1.1、下载 官网:https://www.postgresql.org/ 1.2、安装 1.2.1、开始安装 1.2.2、选择安装位置 1.2.3、选择组件(全选即可) 1.2.4、数据存放路径 数据库相关数据默认存放在这里 1.2.5、设置密码,账号默认为postgres 1.2.6、数据库服务监听端口号 默认端口号即可 1.2.7、系统语言/地区 建议

    2024年02月02日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包