目录

一、前言

二、前置准备

2.1 服务器环境

2.2 docker环境

三、docker安装PostgreSQL过程

3.1 获取PostgreSQL镜像

3.2 启动容器

3.2.1 创建数据卷目录

3.2.2 启动pg容器

3.3 客户端测试连接数据库

四、创建数据库与授权

4.1 进入PG容器

4.2 PG常用操作命令

4.2.1 进入命令行

4.2.2 常用操作命令

四、写在文末


一、前言

在实际项目中,PostgreSQL具有很多使用场景,为了方便应用开发时快速接入和调试,需要有PostgreSQL环境,本文演示如何基于linux环境搭建单节点postgresql完整操作过程。

二、前置准备

2.1 服务器环境

基于centos7以上版本的系统,虚拟机或云服务一台,配置不低于2C4G。

2.2 docker环境

提前在服务器安装docker环境,后面需要基于docker安装PostgreSQL。

三、docker安装PostgreSQL过程

3.1 获取PostgreSQL镜像

使用下面的命令获取镜像

docker pull postgres

3.2 启动容器

3.2.1 创建数据卷目录

为了后续pg数据的持久化,需要提前创建一个数据卷映射目录

mkdir /usr/local/soft/pg/data

3.2.2 启动pg容器

使用下面的命令启动postgresql的容器

docker run -d \--name postgres \-e POSTGRES_USER=root\-e POSTGRES_PASSWORD=123456 \-e ALLOW_IP_RANGE=0.0.0.0/0 \-e POSTGRES_DB=postgres \-v /usr/local/soft/pg/data:/var/lib/postgresql/data \-p 54132:5432 \postgres:latest

参数说明:

  • -d ,以后台进程启动;

  • --name ,指定容器的名字为 :root;

  • POSTGRES_USER=postgres ,指定初始化的连接账户;

  • POSTGRES_PASSWORD=123456 ,指定初始化的连接密码;

  • ALLOW_IP_RANGE=0.0.0.0/0 ,指定允许所有的客户端可以连接;

  • POSTGRES_DB=postgres ,指定默认的数据库名称;

  • -v /usr/local/soft/pg/data:/var/lib/postgresql/data ,指定pg数据库的数据卷;

  • -p 5432:5432 ,容器与宿主机的映射端口,默认为5432 ;

容器运行成功,可以看到启动了一个pg的容器;

3.3 客户端测试连接数据库

本地使用navicat连接pg数据库,使用上述初始化的连接信息

四、创建数据库与授权

和mysql在使用的时候类似,为了保证操作pg数据库的安全性,需要进行相关的授权操作,pg的授权与mysql数据库的授权有所不同,接下来看具体的操作演示过程。

4.1 进入PG容器

找到容器ID,使用下面的命令进入容器

docker exec -it 容器ID /bin/bash

4.2 PG常用操作命令

4.2.1 进入命令行

进入容器之后,使用下面的命令进入PG的操作命令行,类似于mysql的命令行工具

psql -U postgres -h 服务器IP -p 54132 postgres

输入密码,验证成功后,就来到下面的命令行操作界面:

4.2.2 常用操作命令

1)列出当前所有数据库

\l

2)列出当前数据库的所有表

默认情况下,登录进来使用的是postges这个数据库,使用下面的命令可以查看所有表

3)切换数据库

使用下面的命令切换到另一个数据库

\c 数据库名称

4)创建数据库

CREATE DATABASE 数据库名称;

5)创建账户

CREATE USER 用户名 WITH PASSWORD '密码';

6)账户授权

pg数据库中对于连接的账户需要进行授权,有数据库授权,表授权等,下面分别是数据库授权,表授权的命令

  • 一般下面这两个命令是连起来用的,即先对数据库的连接账户授权,仅仅授权数据库还不够,还需要对数据库下面的所有表授权才可正常使用;

GRANT CONNECT, CREATE, TEMPORARY ON DATABASE "数据库名称" TO 用户名;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO 用户名;

补充说明

  • 设置默认权限,使某个用户对未来在 public 模式下创建的表也拥有全部权限
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL PRIVILEGES ON TABLES TO 用户名;

四、写在文末

本文通过实际案例操作演示了如何基于Docker搭建pg的完整过程,并补充了pg数据库操作的常用命令和授权命令,希望对看到的同学有用,本篇到此结束,感谢观看。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/899441.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/899441.shtml
英文地址,请注明出处:http://en.pswp.cn/news/899441.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法为舟 思想为楫:AI时代,创作何为?

在科技浪潮汹涌澎湃的当下,AI技术以前所未有的态势席卷各个领域,创作领域亦未能幸免。当生成式AI展现出在剧本撰写、诗歌创作、图像设计等方面的惊人能力时,人类创作者仿佛置身于文明演化的十字路口,迷茫与困惑交织,兴奋与担忧并存。在AI时代,创作究竟该何去何从?这不仅…

JAVA的内存图理解

目录 一、方法区1、类常量池2、静态常量池3、方法区过程 二、栈三、堆1、字符常量池2、堆内存图的绘制 java中内存可以分为 方法区、 堆、 栈、 程序计数器、 本地方法栈,其中比较中重要的是方法区、堆、栈。 一、方法区 1.方法区(Method Area&…

基于Selenium的IEEE Xplore论文数据爬取实战指南

基于Selenium的IEEE Xplore论文数据爬取实战指南 一、项目背景与目标 IEEE Xplore作为全球知名的学术资源平台,收录了大量高质量科技文献。本教程将演示如何通过Python的Selenium库实现: 自动化获取指定领域论文列表(以"构音障碍"为例)完整提取论文标题、摘要、…

软件工程面试题(十二)

1、文件和目录(i/o)操作,怎么列出某目录下所有文件?某目录下所有子目录,怎么判断文件或目录是否存在?如何读写文件? 列出某目录下所有文件:调用listFile(),然后判断每个File对象是否是文件可以调用 isFile(),判断是否是文件夹可以调用isDirectory(),判断文件或目…

医疗CMS高效管理:简化更新维护流程

内容概要 医疗行业内容管理系统(CMS)的核心价值在于应对医疗信息管理的多维复杂性。面对诊疗指南的动态更新、科研数据的快速迭代以及多机构协作需求,传统管理模式往往面临效率瓶颈与合规风险。现代化医疗CMS通过构建结构化权限管理矩阵&…

谈谈Minor GC、Major GC和Full GC

目录 一、背景 二、三者之间的区分 1、Minor GC 2、Major GC (1)老年代空间不足: (2)晋升(Promotion)失败: (3)空间分配担保失败: &#x…

C盘清理技巧分享:PE Dism++ 空间清理篇

C盘清理技巧分享:PE & Dism 空间清理篇 C盘空间不足是许多用户面临的常见问题,尤其是在使用 Windows 系统时。本文将重点介绍如何使用 PE(Preinstallation Environment)和 Dism 工具高效清理 C盘空间,释放宝贵的存…

低功耗LPWAN模块开发指南:远距离无线通信与边缘计算融合实战‌

在远程资产追踪、野外环境监测等场景中,稳定可靠的长距离通信与超低功耗是系统设计的核心挑战。eFish-SBC-RK3576通过 ‌原生双UART接口 USB OTG扩展能力‌ ,可无缝集成主流LPWAN模组(LoRa/NB-IoT),实现“数据采集-边…

迅为iTOP-RK3576人工智能开发板Android 系统接口功能测试

2.1 开机启动 开发板接通电源,并按下电源开关,系统即启动,在启动过程中,系统会显示下图中的开机画面,它们分别是 Android 系统启动时的 Logo 画面: 最后会显示如下解锁画面: 2.2 命令终端 将…

RAG基建之PDF解析的“无OCR”魔法之旅

PDF文件转换成其他格式常常是个大难题,大量的信息被锁在PDF里,AI应用无法直接访问。如果能把PDF文件或其对应的图像转换成结构化或半结构化的机器可读格式,那就能大大缓解这个问题,同时也能显著增强人工智能应用的知识库。 嘿,各位AI探险家们!今天我们将踏上了一段奇妙的…

二层框架组合实验

实验要求: 1,内网IP地址使用172.16.0.0/16分配 2,SW1和sw2之间互为备份 3,VRRP/STP/VLAN/Eth-trunk均使用 4,所有PC均通过DHCP获取IP地址 5,ISP只能配置IP地址 6,所有电脑可以正常访问ISP路由器环回 实验思路顺序: 创建vlan eth-trunk 划分v…

光纤耦合器

以下是关于光纤耦合器的详细介绍: 定义与原理 - 定义:光纤耦合器是一种能使传输中的光信号在特殊结构的耦合区发生耦合,并进行再分配的器件,也叫分歧器、连接器、适配器、光纤法兰盘。 - 原理:利用不同光纤面紧邻光纤芯…

惠普(HP)和联想(Lenovo)作为全球两大电脑品牌,并不是简单的“拼接电脑”

惠普(HP)和联想(Lenovo)作为全球两大电脑品牌,并不是简单的“拼接电脑”,它们都有自己的核心技术、专利设计和生态体系。以下是它们“自己的”核心部分: 1. 关键自研技术 品牌自研技术/专利说明…

若依赖前端处理后端返回的错误状态码

【背景】 后端新增加了一个过滤器,用来处理前端请求中的session 若依赖存放过滤器的目录:RuoYi-Vue\ruoyi-framework\src\main\java\com\ruoyi\framework\security\filter\ 【问题】 后端返回了一个状态码为403的错误,现在前端需要处理这…

智能的数学公式:Intelligence = Priori knowledge * Reasoning ?

爱因斯坦的相对论公式大道至简, 假如智能有公式的话,会不会是: 其中,两个影响因子分别是先验知识 和 推理能力,推理能力的指数部分可以是整数也是小数,但是暂时还不好确定。 解析:&#xff08…

简单使用LlamaIndex实现RAG

简单使用LlamaIndex实现RAG 1 介绍 LlamaIndex是一个专门为大语言模型(LLM)设计的开源数据管理工具,旨在简化和优化LLM在外部数据源中的查询过程。适合在数据索引上构建RAG。 参考的地址 # 官网地址 https://docs.llamaindex.ai/en/stabl…

Redis延时队列在订单超时未报到场景的应用补充说明

一、工具类设计要点解析 连接保活机制 Scheduled(cron "0 */10 * * * ?") 定时任务每10分钟向所有队列发送心跳消息("keepAlive"),避免云Redis因空闲断开连接。这是针对云服务商自动回收空闲连接的通用解决方案1。 泛…

理解Kubernetes中CoreDNS域名解析与DNS策略

CoreDNS是什么 CoreDNS是一个灵活可扩展的DNS服务器,使用Go语言编写,旨在提供快速、灵活的DNS服务 为什么需要CoreDNS CoreDNS为Kubernetes集群内部的DNS解析提供服务,使得服务之间能够通过域名互相通信 Kubernetes集群中, CoreDNS是运行在…

日报日报流量分析

快捷键 CtrlK,选择需要抓包的网卡 CtrlF可以进行关键字搜索 CtrlM,标记数据包 CtrlShiftN跳到标记处 查看包有多少协议Protocol Hierarchy(协议分级) 搜了一下TCP协议,是互联网最基本的协议&#xff0…

docker-Dify外接Fastgpt知识库

参考地址:https://mp.weixin.qq.com/s/crQrneHZ0sT-c04YanofSw 总体步骤 部署fda(fastgpt-dify-adapter)docker 部署dify,fastgpt在fastgpt创建open apikey,复制知识库id;在dify外接fastgpt知识库; docker安装 下载…