Linux环境中对Postgrel数据库的安装与配置

一、环境准备

linux操作系统的环境是centos7;

Postgrel数据库的版本是12.0,不同版本的下载渠道如下(PostgreSQL: File Browser):

可以看到压缩包是比较小的;下载之后,上传到你的linux环境中即可。

二、安装所需要的依赖

2.1准备依赖

yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel

注意:这里因为cenos7已经不再继续维护,所以所需要的依赖可能会下载失败,这需要重新配置yum源,换成aliyun的镜像,应该能下载成功(这是我的重新编辑yum源的过程:centos7在使用yum源安装依赖时报错_centos7安装源出错-CSDN博客);

所需的依赖被下载安装成功;

2.2接着就是解压安装包

tar -zxvf postgresql-12.0.tar.gz

解压之后的文件夹内容如下:

三、配置安装

安装包解压之后的文件夹里面有configure的可执行文件,执行如下操作(后面的这个路径可以改成自己的风格,也可不改):

3.1自动配置

./configure --prefix=/opt/pgsql/postgresql

3.2编译

make

3.3编译安装

make install

3.4创建用户

#添加用户组
groupadd postgres

#添加用户
useradd -g postgres postgres

然后就是在你的安装目录下面创建一个存放数据文件的文件夹,我这里叫data

mkdir data

并给改数据文件夹授权

chown postgres:postgres data

3.5修改配置文件

接着是切换到home下进入到postgres下:

cd postgres/

对文件.bash_profile进行编辑:

vim .bash_profile

 添加如下配置:

#PostGrel
export PGHOME=/opt/pgsql/postgresql

export PGDATA=/opt/pgsql/postgresql/data

PATH=$PATH:$HOME/bin:$PGHOME/bin

保存退出;

接着执行如下命令,使其生效即可

source .bash_profile

然后切换到postgres用户下,初始化数据库

su - postgres

initdb

在初始化之后,我们的data文件夹里面就有了一些必要的文件,紧接着修改两个配置文件:

vim postgresql.conf

这个参数listen_addresses原来是被注释掉的,但是如果想从其他的机器来访问该服务器上的pg数据库,就需要将该参数启用,并将里面的localhost换为*

保存并退出;

vim pg_hba.conf

新增这一行才能使局域网来访问:

host    all            all             0.0.0.0/0               trust

保存并退出;

3.6配置自启动

在解压的安装包中,进入到如下文件夹中:

授权:

chmod a+x linux

然后将这里的linux复制到/etc/init.d中,并改名

cp linux /etc/init.d/postgresql

编辑该文件:

vim /etc/init.d/postgresql

修改这两个参数,换成自己的

修改后:

保存退出;

接着执行如下命令:

chkconfig --add postgresql

启动pg服务:

service postgresql start

查看服务进程:

四、简单使用

(1)直接进入到命令行下:

(2)也可以通过如下方式进入命令行:

psql -h <hostname or ip> -p <端口> [数据库名称] [用户名称]

 4.1常用命令

注意:其实一项技能最好的辅助教材就是它的官方文档;PostgreSQL 12.2 手册

PG的官方文档环视不错的,相比较Oracle和MongoDB的官方文档,技能比较全且是比较准确的中文翻译;

注意:psql 的命令都是以斜杠 "\" 开头的。

  (1)   \l  查看所有数据库

(2)\d [ pattern ] 该命令将显示每个匹配关系(表、视图、索引、序列)的信息,可以加上 + 查看更多的信息,如 \d+

不加任何参数表示查看当前数据库的所有表。

 \d tablename 后面跟一个表名,表示显示这个表的结构定义

\d indexname 也可以显示索引的信息,如 \d 索引名称

\d * 后面也可以跟通配符如 "*" 或 "?",\d x*

\d+ 将显示比 \d 更详细的信息,还会显示任何与表关系的注释,以及表中出现的 OID 

\dt 只显示匹配的表  

\di 只显示索引

 \ds  只显示序列

\dv 只显示视图

\df 只显示函数

(3) \timing on或off 显示 SQL 已执行的时间,默认情况下是 off

(4)\dn 列出所有的 schema 

(5)\du 或 \dg 列出所有的数据库用户和角色

(6)\db 显示所有的表空间,表空间其实是一个目录,放在这个表空间的表,就是把表的数据文件发到这个表空间下。

(7)\dp 或 \z 显示表的权限分配情况

(8)\encoding 指定客户端的字符编码,如 \encoding UTF8; 

(9)\pset 设置输出的格式,\pset border 0 : 表示输出内容无边框。 border 1 :表示边框只在内部。border 2 :内外都有边框

(10)\x 把表中的每一行的每列数据都拆分为单行展示,与 MySQL 中的 "\G" 的功能类似。

(11)\echo 用于输出一行信息,通常用于在 .sql 文件中输出一些提示信息。 

(12)\password 设置密码

(13)\conninfo 列出当前数据库连接的信息

(14)\dx 查看数据库中安装的扩展 或 select * from pg_extension;

4.2执行存储在外部文件中的 SQL 命令

(1)\i <文件名> 执行存储在外部文件中的 sql 语句

(2)当然也可以在 psql 命令行加 "-s <filename>" 来执行 SQL 脚本文件中的命令,如 psql -s test.sql

4.3psql 的使用技巧和注意事项

(1)在启动 psql 命令后中加 "-E" 参数,就可以把 psql 中各种以 "\" 开头的命令执行的实际 SQL 打印出来,如下 psql -E postgres,如果想关闭此功能,可以使用 "\set ECHO_HIDDEN on | off"

(2)自动提交方面的技巧

psql 中的事务是自动提交的,可以运行 begin; 然后执行 dml 语句,最后再执行 commit 或 rollback 语句。或 直接使用 psql 中的命令关闭自动提交的功能。 \set AUTOCOMMIT off

(3)查看数据库、表、索引大小

select pg_size_pretty(pg_table_size('test'));   
select pg_size_pretty(pg_database_size('david'));
select pg_size_pretty(pg_indexes_size('test'));
完结。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/951487.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于vue的商城小程序的毕业设计与实现(源码及报告)

环境搭建 ☞☞☞ ​​​Vue入手篇(一)&#xff0c;防踩雷(全网最详细教程)_vue force-CSDN博客 目录 一、功能介绍 二、登录注册功能 三、首页 四、项目截图 五、源码获取 一、功能介绍 用户信息展示&#xff1a;页面顶部设有用户头像和昵称展示区&#xff0c;方便用户识别…

单元测试概述入门

引入 什么是测试&#xff1f;测试的阶段划分&#xff1f; 测试方法有哪些&#xff1f; 1.什么是单元测试&#xff1f; 单元测试&#xff1a;就是针对最小的功能单元&#xff08;方法&#xff09;&#xff0c;编写测试代码对其正确性进行测试。 2.为什么要引入单元测试&#x…

Springboot3巧妙运用拦截器阻断xss攻击

Springboot3巧妙运用拦截器阻断xss攻击 什么是xss跨站脚本攻击类型简单示例解决方法拦截器代码使用demo 什么是xss 人们经常将跨站脚本攻击&#xff08;Cross Site Scripting&#xff09;缩写为CSS&#xff0c;但这会与层叠样式表&#xff08;Cascading Style Sheets&#xff…

DAY39|动态规划Part07|LeetCode:198.打家劫舍、213.打家劫舍II、337.打家劫舍III

目录 LeetCode:198.打家劫舍 基本思路 C代码 LeetCode:213.打家劫舍II 基本思路 C代码 LeetCode:337.打家劫舍III 基本思路 C代码 LeetCode:198.打家劫舍 力扣题目链接 文字讲解&#xff1a;LeetCode:198.打家劫舍 视频讲解&#xff1a;动态规划&#xff0c;偷不偷这个…

数据结构——栈的实现

今天&#xff0c;我们来写一下关于栈的博文。 1.首先我们先了解一下什么是栈&#xff1f; 一&#xff1a;概念&#xff1a; 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。 进行数据插入和删除操作的一端称为栈顶&#xff0c;另…

uniapp 的uni.getRecorderManager() 录音功能小记

官网上明确说的是全局唯一并且只是获取对象&#xff0c;所以会导致一个问题就是&#xff0c;当你多个页面要用到这个对象的时候&#xff0c;会发现 onStop 方法会被覆盖&#xff0c;导致调用结果不是自己想要的 解决办法也简单粗暴&#xff0c;在需要用到的界面重新覆盖onStop…

Unity:删除注册表内的项目记录

然后WinR按键输入regedit 打开注册表 在注册表 HKEY CURRENT USER—>SOFTWARE—>Unity—>UnityEditor—>DefaultCompany —>language_Test 中&#xff0c;删除我们的之前存储的语言环境数据。在 “ 三、文本调用和替换 ” 测试时已经将语言环境存储到注册表中了…

标准应用 | 2025年网络安全服务成本度量实施参考

01 网络安全服务成本度量依据相关新变化 为了解决我国网络安全服务产业发展中面临的服务供需两方对于服务成本组成认知偏差较大、网络安全服务成本度量缺乏依据的问题&#xff0c;中国网络安全产业联盟&#xff08;CCIA&#xff09;组织北京赛西科技发展有限责任公司、北京安…

微信小程序map组件所有markers展示在视野范围内

注意&#xff1a;使用include-points属性不生效&#xff0c;要通过createMapContext实现 <template><view class"map-box"><map id"map" class"map" :markers"markers" :enable-traffic"true" :enable-poi&…

PLC实现HTTP协议JSON格式数据上报对接的参数配置说明

IGT-SER系列PLC通讯智能网关支持HTTP协议GET和POST、PUT请求模式。支持JSON格式的文件&#xff0c;也可以实现WebService的调用。 通常智能网关是HTTP协议的客户端&#xff0c;也可以同时作为HTTP的服务端。相关案例 作为客户端时支持触发、周期、混合等多种工…

微信小程序——创建滑动颜色条

在微信小程序中&#xff0c;你可以使用 slider 组件来创建一个颜色滑动条。以下是一个简单的示例&#xff0c;展示了如何实现一个颜色滑动条&#xff0c;该滑动条会根据滑动位置改变背景颜色。 步骤一&#xff1a;创建小程序项目 首先&#xff0c;使用微信开发者工具创建一个新…

Improving Language Understanding by Generative Pre-Training GPT-1详细讲解

Improving Language Understanding by Generative Pre-Training 2018.06 GPT-1 0.有监督、半监督、无监督 CV&#xff1a;ImageNet pre-trained model NLP&#xff1a;pre-trained model? 在计算机视觉中任务包含分类、检测、分割&#xff0c;任务类别数少&#xff0c;对应…

sql server cdc漏扫数据

SQL Server的CDC指的是“变更数据捕获”&#xff08;Change Data Capture&#xff09;。这是SQL Server数据库提供的一项功能&#xff0c;能够跟踪并记录对数据库表中数据所做的更改。这些更改包括插入、更新和删除操作。CDC可以捕获这些变更的详细信息&#xff0c;并使这些信息…

如何在 Ubuntu 22.04 上安装 Caddy Web 服务器教程

简介 Caddy 是一个开源的 Web 服务器&#xff0c;它支持静态和现代 Web 应用程序&#xff0c;使用预定义的配置规则&#xff0c;并为所有链接的域名自动启用 HTTPS。Caddy 使用 GO 语言编写&#xff0c;提供了用户友好的配置指令&#xff0c;使你既可以将其用作 Web 服务器&am…

《机器学习》——贝叶斯算法

贝叶斯简介 贝叶斯公式&#xff0c;又称贝叶斯定理、贝叶斯法则&#xff0c;最初是用来描述两个事件的条件概率间的关系的公式&#xff0c;后来被人们发现具有很深刻的实际意义和应用价值。该公式的实际内涵是&#xff0c;支持某项属性的事件发生得愈多&#xff0c;则该属性成…

边缘计算网关在机床设备数据采集中的应用

边缘计算网关是连接边缘设备和云端的一个中间节点&#xff0c;负责在边缘设备和云服务器之间进行数据传输和处理。它具备数据采集、数据处理、协议转换、数据存储、安全功能及远程管理等多种能力&#xff0c;是边缘计算系统中不可或缺的关键设备。 一、功能与优势 数据采集&a…

腾讯二面:MySQL的半同步是什么?不是MySQL的两阶段提交,那是什么?

前言 年后在进行腾讯二面的时候&#xff0c;写完算法的后问的第一个问题就是&#xff0c;MySQL的半同步是什么&#xff1f;我当时直接懵了&#xff0c;我以为是问的MySQL的两阶段提交的问题呢&#xff1f;结果确认了一下后不是两阶段提交&#xff0c;然后面试官看我连问的是啥都…

云计算基础,虚拟化原理

文章目录 一、虚拟化1.1 什么是虚拟化1.2 虚拟化类型 二 、存储虚拟化2.1 存储指标2.2 存储类型2.3 存储协议2.4 RAID 三、内存 i/O虚拟化3.1 内存虚拟化基本概念地址空间转换原理内存共享与隔离原理 3.2 I/O 虚拟化基本概念模拟&#xff08;Emulation&#xff09;方式半虚拟化…

【网络协议】IPv4 地址分配 - 第二部分

前言 在第 1 部分中&#xff0c;我们学习了 IPv4 地址的分配方式&#xff0c;了解了各种类型的 IPv4 地址&#xff0c;并进行了基础的子网划分&#xff08;Subnetting&#xff09;。在第 2 部分中&#xff0c;我们将继续学习子网划分&#xff0c;并引入一些新的概念。 【网络…

JAVA 使用apache poi实现EXCEL文件的输出;apache poi实现标题行的第一个字符为红色;EXCEL设置某几个字符为别的颜色

设置输出文件的列宽&#xff0c;防止文件过于丑陋 Sheet sheet workbook.createSheet(FileConstants.ERROR_FILE_SHEET_NAME); sheet.setColumnWidth(0, 40 * 256); sheet.setColumnWidth(1, 20 * 256); sheet.setColumnWidth(2, 20 * 256); sheet.setColumnWidth(3, 20 * 25…