Linux下安装PostgreSQL_linux安装postgresql-程序员宅基地

技术标签: postgresql  【Linux】  linux  数据库  


一、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 ... 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

(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=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

三、基本操作

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,然后重启服务

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/jxlhljh/article/details/126602685

智能推荐

Apache Apollo MQTT服务器配置与调试_apollo mqtt 关闭用户名-程序员宅基地

文章浏览阅读2.5k次。1、下载并安装一个大神的博客:MQTT再学习 -- 搭建MQTT服务器及测试2、直接启动Apache Apollo服务器的命令./apollo create xxx./xxx/bin/apollo-broker run3、后台运行apollo-broker-service installapollo-broker-service start|restart|stop|u..._apollo mqtt 关闭用户名

【二】数据结构之List_list<list<r>>-程序员宅基地

文章浏览阅读8.4k次。【二】数据结构之List数据结构中,线性表无独有偶,除了Vector还有另外一种ADT,就是我们要讨论的List,与向量Vector有所不同,列表List不在是系统连续的内存空间,也就是说不是基于数组来实现的了,尽管在物理上不是线性的,但是抽象层次上,List在逻辑上依旧是现行表,因此List优化了Vector插入,删除操作的劣势,但是在查找方面却不如Vector的二分查找来的快。 List有哪些_list>

Java多线程(六)Lock的使用 (ReentrantLock;ReentrantReadWriteLock) 7.30_private lock lock = new reentrantlock();-程序员宅基地

文章浏览阅读167次。ReentrantLock类:JDK1.5中增加了ReentrantLock类,可以实现线程之间的同步互斥;还具有嗅探锁定,多路分支通知等功能;使用ReentrantLock实现同步:public class MyThread extends Thread{ private Service service; public MyThread(Service service) { ..._private lock lock = new reentrantlock();

迁移学习全面理解_数据域和标签域都存在差异的迁移学习-程序员宅基地

文章浏览阅读6.9k次,点赞7次,收藏51次。目录目标和本质分类迁移学习全面概述:从基本概念到相关研究什么是迁移学习?什么使得迁移学习与众不同呢?迁移学习的定义迁移学习的场景迁移学习的应用从模拟中学习适应到新的域跨语言迁移知识迁移学习的方法使用预训练的 CNN 特征理解卷积神经网络学习图像的隐含结构学习域不变的表征让表征更加相似混淆域相关的研究领域半监督学习更..._数据域和标签域都存在差异的迁移学习

Ubuntu 20.04下PyCharm配置QtDesigner,PyUIC和Pyrcc_ubuntu20.04 下 pycharm 配置qtdesigner pyuic 和 pyrcc-程序员宅基地

文章浏览阅读3k次,点赞6次,收藏31次。配置前准备首先安装qt5工具:sudo apt-get install qt5-default qttools5-dev-tools安装pyqt5:sudo pip3 install pyqt5配置QtDesigner打开PyCharm,依次点击File–>Settings–>Tools–>External Tools.点击右边界面上的 “ + ”,弹出 Create Tool 对话框。Name 根据你自己的喜好填写,我这里填写的是QtDesignerProgram 填_ubuntu20.04 下 pycharm 配置qtdesigner pyuic 和 pyrcc

【MySQL】本地创建MySQL数据库详解-程序员宅基地

文章浏览阅读1.1k次,点赞25次,收藏25次。(方法一)点开【开始】菜单>>在搜索框中输入“cmd”>>在搜索结果中,右击【命令提示符】程序>>点击选择“以管理员身份运行”>>进入到MySQL安装的bin目录下。>>随便输入密码,回车>>进入到MySQL安装的data目录下,打开以“err”结尾的文件>>搜索password查找初始密码。右键点击“此电脑”>>属性>>高级系统设置>>环境变量>>编辑Path变量,添加MySQL安装目录下的bin文件路径。(方法二)进入到MySQL安装的bin目录下。在解压好的文件夹中创建my.ini文件。_本地创建mysql数据库

随便推点

数据库模糊匹配通配符的简单举例_模糊查询一个字符和多个字符用什么代替-程序员宅基地

文章浏览阅读2.3k次。使用SQL通配符可以替代一个或多个字符,即模糊查询。SQL通配符必须与 LIKE 运算符一起使用。在 SQL 中,可使用以下通配符如下:1、% 替代一个或多个字符 2、_ 仅替代一个字符 3、[charlist] 字符列中的任何单一字符 4、[^charlist]或者[!charlist] 不在字符列中的任何单一字符_模糊查询一个字符和多个字符用什么代替

嵌入式Linux学习之旅(6)— 使用正点原子的Linux内核启动系统_4.1.15-g49efdaa-程序员宅基地

文章浏览阅读1.7k次。Linux内核在i.mx6ull的编译运行编译Linux Kernel需要使用lzop库,所以需要安装,否则编译内核会失败!!!sudo apt-get install lzop一、Linux Kernel的编译在Ubuntu 中创建~/imx6ull/project/alientek_linux目录存放Linux Kernel源码,将正点原子已经移植好的源码linux-imx-4.1..._4.1.15-g49efdaa

认证方式-程序员宅基地

文章浏览阅读109次。Claims-based分开认证和授权,如用QQ账户登录系统。.net 下实现ClaimsIdentityClaimsPrincipalWindows使用windows认证:<authentication mode="Windows" />相关模块:WindowsAuthenticationModule  //Authenticat..._"

计算机十大算法应用 知乎,2019 智源·知乎看山杯算法大赛收官:7 支团队脱颖而出,单人队荣摘桂冠!...-程序员宅基地

文章浏览阅读152次。雷锋网 AI 开发者按:1 月 10 日,北京智源人工智能研究院联合知乎、数据评测平台 biendata 举办的「2019 智源·知乎看山杯专家发现算法大赛」正式收官。大赛颁奖仪式暨算法交流会在清华大学 FIT 大楼多功能厅举行,北京智源人工智能研究院副院长、清华大学计算机系副主任、教授唐杰,知乎技术副总裁李大任出席了该仪式,并为获奖选手颁发了获奖证书。清华大学计算机系长聘副教授、智源学者刘知远,..._知乎刘看山杯数据

最好的降噪蓝牙耳机有哪些?目前最好的降噪蓝牙耳机推荐_目前降噪效果最好的蓝牙耳机-程序员宅基地

文章浏览阅读108次。耳机应该是除了手机之外陪伴你最久的一样电子产品吧?别看它个头不大,作用可不小,如果你已经想入手一款蓝牙耳机,又不知道该怎么选,看这里,我来告诉你,哪一款最适合你。一、南卡A2降噪蓝牙耳机价格:399充电方式:无线充电续航时间:6H+30H蓝牙音频格式:AAC-SBCNank南卡听名字不熟悉不要紧,重点看品质。南卡A2整个耳机仅4.1克,无限充电方便小巧,蓝牙5.2信号传输稳定,解析能力高,三频均衡,无论是接打电话、听音乐,都能表现出超高水准,尤其配有13mm超大动圈,高通3040芯片_目前降噪效果最好的蓝牙耳机

【图像分割】医学图像分割多目标分割(多分类)实践-程序员宅基地

文章浏览阅读2.4w次,点赞77次,收藏467次。文章目录1. 数据集2. 数据预处理3. 代码部分3.1 训练集和验证集划分3.2 数据加载和处理3.3 One-hot 工具函数3.4 网络模型3.5 模型权重初始化3.6 损失函数3.7 模型评价指标3.8 训练3.9 模型验证3.10 实验结果1. 数据集来自ISICDM 2019 临床数据分析挑战赛的基于磁共振成像的膀胱内外壁分割与肿瘤检测数据集。(原始数据)(ground truth)灰度值:灰色128为膀胱内外壁,白色255为肿瘤。任务是要同时分割出膀胱内外壁和肿瘤部分,加上背景_多目标分割

推荐文章

热门文章

相关标签