Linux下安装PostgreSQL

  • 一、PostgreSQL简介
  • 二、Linux 上安装 PostgreSQL
    • 1.二进制已编绎安装包方式安装
      • (1)下载二进制包
      • (2)创建postgres用户
      • (3)解压
      • (4)创建data目录
      • (5)初始化
      • (6)启动
      • (7)关闭
      • (8)登录postgresql数据库
      • (9)创建用户和数据库并授权
      • (10)退出psql(输入 \q 再按回车键即可)
      • (11)连接数据库
      • (12)开启远程访问
    • 2.yum安装PostgreSQL
      • (1)安装过程官网参考
      • (2)安装过程步骤
    • 3.源码方式安装PostgreSQL
      • (1)下载源码
      • (2)创建postgres用户
      • (3)进行源码安装
      • (4)设置postgresql 服务自启动
  • 三、基本操作
    • 1.`查看当前的数据库列表`
    • 2.`建表`
    • 3.`插入与查询`
    • 4.`查看pgsql版本`
    • 5.`查看用户名和密码`
    • 6.`获取服务器上所有数据库信息`
    • 7.`得到db中所有表的信息`
    • 8.`备份与还原`
    • 9.`更多参考PostgreSQL 教程`
  • 其他
    • psql: FATAL: Ident authentication failed for user

一、PostgreSQL简介

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

从技术角度来讲,PostgreSQL 采用的是比较经典的C/S(client/server)结构,也就是一个客户端对应一个服务器端守护进程的模式,这个守护进程分析客户端来的查询请求,生成规划树,进行数据检索并最终把结果格式化输出后返回给客户端。为了便于客户端的程序的编写,由数据库服务器提供了统一的客户端 C 接口。而不同的客户端接口都是源自这个 C 接口,比如ODBC,JDBC,Python,Perl,Tcl,C/C++,ESQL等, 同时也要指出的是,PostgreSQL 对接口的支持也是非常丰富的,几乎支持所有类型的数据库客户端接口。这一点也可以说是 PostgreSQL 一大优点。

PostgreSQL强壮的一个原因源于它的架构。和商业数据库一样,PostgreSQL可以用于C/S(客户/服务器)环境。这对于用户和开发人员有很多好处。

二、Linux 上安装 PostgreSQL

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

1.二进制已编绎安装包方式安装

第一种安装方式:通过二进制已编绎安装包安装

(1)下载二进制包

https://www.enterprisedb.com/download-postgresql-binaries
https://get.enterprisedb.com/postgresql/postgresql-10.22-1-linux-x64-binaries.tar.gz

(2)创建postgres用户

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

(3)解压

tar -xvf postgresql-10.12-1-linux-x64-binaries.tar.gz -C /home/postgres/

(4)创建data目录

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

(5)初始化

./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 ... okWARNING: 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

(6)启动

./bin/pg_ctl -D /home/postgres/pgsql/data -l /home/postgres/pgsql/logs/pgsql.log start

(7)关闭

./bin/pg_ctl -D /home/postgres/pgsql/data stop

(8)登录postgresql数据库

./psql

(9)创建用户和数据库并授权

create user test_user with password '123456'; // 创建用户
create database test_db owner test_user; // 创建数据库
grant all privileges on database test_db to test_user; // 授权

(10)退出psql(输入 \q 再按回车键即可)

\q

(11)连接数据库

./bin/psql -h 127.0.0.1 -d test_db -U test_user -p 5432

(12)开启远程访问

####修改postgresql.conf文件,取消 listen_addresses 的注释,将参数值改为“*”####修改pg_hba.conf文件,增加下图红框部分内容
host    all             all             0.0.0.0/0            md5####navicat
https://www.cnblogs.com/zhi-leaf/p/11432054.html

2.yum安装PostgreSQL

第一种安装方式:通过yum安装

(1)安装过程官网参考

https://www.postgresql.org/download/linux/redhat/

(2)安装过程步骤

# 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 postgresql10-server## 采用ln -s方式挂载/var/lib/pgsql/10/data目录用来修改数据目录,以/home/postgresdata为例
mkdir /home/postgresdata -p
chown -R postgres:postgres /home/postgresdata
rm -rf /var/lib/pgsql/10/data
ln -s /home/postgresdata /var/lib/pgsql/10/data
chown -R postgres:postgres /var/lib/pgsql/10/data# Optionally initialize the database and enable automatic start:
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
sudo systemctl enable postgresql-10
sudo systemctl start postgresql-10

3.源码方式安装PostgreSQL

第三种安装方式:通过源码安装
部分内容参考了此文https://www.cnblogs.com/wsum/p/15522211.html

(1)下载源码

##下载地址和源码
https://www.postgresql.org/download/
postgresql-14.5.tar.gz

(2)创建postgres用户

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

(3)进行源码安装

以安装到/opt/postgresql目录下为例

##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)设置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=trueLimitNOFILE = 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

三、基本操作

1.查看当前的数据库列表

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

2.建表

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

3.插入与查询

####插入
insert into test values(1,'test',21,'123');####查询
select * from test;

4.查看pgsql版本

SELECT version();

5.查看用户名和密码

SELECT * FROM pg_authid;

6.获取服务器上所有数据库信息

SELECT * FROM pg_database ORDER BY datname;

7.得到db中所有表的信息

#获取所有库表信息
select * from pg_tables ORDER BY schemaname;#获取当前
\d 库名 获取库中数据表名列表
\d 表名 获取表结构字段描述

8.备份与还原

/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

9.更多参考PostgreSQL 教程

PostgreSQL 教程:
https://www.runoob.com/postgresql/postgresql-tutorial.html

其他

psql: FATAL: Ident authentication failed for user

#
vi /var/lib/pgsql/10/data/pg_hba.conf 将localhost和127.0.0.1的两行的ident修改成trust,然后重启服务

Linux下安装PostgreSQL相关推荐

  1. linux下安装 postgresql 14

    一,linux下安装postgresql         PostgreSQL: Linux downloads (Red Hat family) https://www.postgresql.org ...

  2. Linux 下安装Postgresql

    为什么80%的码农都做不了架构师?>>>    环境:Linux localhost.localdomain 2.6.32-431 GNU/Linux x86_64 Postgres ...

  3. linux怎么编译并安装busybox,linux下安装busybox

    1.获取busybox源码并解压,这里使用天嵌提供的"busybox-1.16.0.tar.bz2" #tar xvf busybox-1.16..tar.bz2 -C / 解压的 ...

  4. linux blender骨骼绑定,Linux下安装Blender

    Blender在Windows下,可以在官方直接下载免安装的版本,下载解压缩就能用. 在Linux下稍微麻烦一点点. 如下3步安装的blender不一定是最新版本,且安装完成后发现设置中文会变为方块. ...

  5. wsock32 linux,在linux下安装并使用websocket

    前言 首先,对websocket要有一个简要的了解与认识 websocket是HTML5开始提供的一种浏览器与服务器进行全双工通讯的网络技术,属于应用层协议. 它基于TCP传输协议,并复用HTTP的握 ...

  6. CentOS 6.9下安装PostgreSQL

    操作系统:CentOS6.9_x64 PostgreSQL官方网址: https://www.postgresql.org/ 安装数据库 使用如下命令: yum install postgresql- ...

  7. 短小视频网站sexcms源码 安装搭建环境加采集教程 有手机和PC演示站 linux下安装一片空白的解决linux下安装一片空白的解决

    特别注意:在linux下安装一片空白的解决方法:把index.php的第66行改为require_once sexPATH.'lib/Cs_Sex.php';就行.linux下要注意大小写区分. 电脑 ...

  8. linux postgresql 创建数据库,Linux下创建Postgresql数据库的方法步骤

    Linux下创建Postgresql数据库的方法步骤 前言 PostgreSQL (也叫 Postgres)是一个自由的对象-关系数据库服务器(数据库管理系统),它在灵活的 BSD-风格许可证下发行. ...

  9. linux下安装sbt_如何在Linux上安装SBT

    linux下安装sbt 介绍 (Introduction) Hi! I am Sanjula, and in this guide I hope to teach you how to install ...

最新文章

  1. vue.config.js配置代理不生效_npm install的代理问题
  2. 如何提高ORACLE数据库的查询统计速度
  3. java oracle exp_java中使用oracle的exp/imp导出、导入数据
  4. macbook不能进系统 备份数据_外卖骑手,困在系统里;绩效考核与奖惩激励,不能困在数据里...
  5. OpenGL之矩阵变换的原理分析与数学推导
  6. android 拖拽gridview,Android 可拖拽的GridView效果实现, 长按可拖拽和item实时交换
  7. ef mysql 读写分离_基于 EntityFramework 的数据库主从读写分离服务插件
  8. js里用append()和appendChild有什么区别?
  9. Android O后台服务限制总结
  10. 继承体系下的对象构造
  11. 让IIS只监听一个IP上的80端口
  12. 分享“我是如何实现财务小自由的”
  13. 13 个 Python 必备的知识,建议收藏!
  14. python字符串重复子串_LeetCode 459. 重复的子字符串 | Python
  15. UITableView 部分方法详解
  16. exe4j打成的exe文件运行时弹窗this executable was created with an evaluation version of exe4j问题解决
  17. 还在用收费的工具处理PDF?用Python助力冲破会员牢笼
  18. Android Camera开发系列:设置对焦模式模式
  19. 下载kaggle数据集出现的一系列问题
  20. esp32,基于阿里云平台,配置实现Node.js SDK接入示例出现description: ‘Failed to authenticate: 4‘ BUG

热门文章

  1. 基于协同过滤算法的在线视频学习答题自动化批改平台 习题问答系统
  2. DNSPod十问高春辉: 老兵不死, 我还有梦!
  3. 众多匿名社交小程序惨遭封杀?
  4. IntelliJ Idea优秀插件
  5. VS中创建自定义控件
  6. 解决TableLayoutPanel控件闪烁
  7. 大话设计模式-代理模式(大鸟和小菜Java版)
  8. 计算机被限制无法打开C盘,Win7系统设置C盘提示"本次操作由于这台计算机限制而被取消"方法...
  9. 5. 下面c语言的标识符中,哪个是不合法__________.,C语言作业题(浙大版)
  10. Android要凉了吗?其实只是你凉了