【云原生】docker 搭建单机PostgreSQL操作详解
目录
一、前言
二、前置准备
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数据库操作的常用命令和授权命令,希望对看到的同学有用,本篇到此结束,感谢观看。
相关文章:
【云原生】docker 搭建单机PostgreSQL操作详解
目录 一、前言 二、前置准备 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…...
解决 Gradle 构建错误:Could not get unknown property ‘withoutJclOverSlf4J’
解决 Gradle 构建错误:Could not get unknown property ‘withoutJclOverSlf4J’ 在构建 Spring 源码或其他基于 Gradle 的项目时,可能会遇到如下错误: Could not get unknown property withoutJclOverSlf4J for object of type org.gradle…...
免费使用!OpenAI 全量开放 GPT-4o 图像生成能力!
2025年3月26日,OpenAI正式推出GPT-4o原生图像生成功能,这一更新不仅标志着多模态AI技术的重大突破,更引发了全球AI厂商的激烈竞争。从免费用户到企业开发者,从创意设计到科学可视化,GPT-4o正在重塑图像生成的边界。本文…...
jetson orin nano super AI模型部署之路(三)stable diffusion部署
先看一下部署后的界面和生成的图片。 在jetson orin nano super上部署stable diffusion比较简单,有现成的docker image和代码可用。 docker image拉取 使用的docker image是dustynv/stable-diffusion-webui,对于jetson orin nano super的jetpack6.2来说…...
深入理解:阻塞IO、非阻塞IO、水平触发与边缘触发
深入理解:阻塞IO、非阻塞IO、水平触发与边缘触发 在网络编程和并发处理中,理解不同的 I/O 模型和事件通知机制至关重要。本文将深入探讨阻塞IO(Blocking IO)、非阻塞IO(Non-Blocking IO)、水平触发&#x…...
WebRTC的ICE之TURN协议的交互流程中继转发Relay媒体数据的turnserver的测试
WebRTC的ICE之TURN协议的交互流程和中继转发Relay媒体数据的turnserver的测试 WebRTC的ICE之TURN协议的交互流程中继转发Relay媒体数据的turnserver的测试 WebRTC的ICE之TURN协议的交互流程和中继转发Relay媒体数据的turnserver的测试前言一、TURN协议1、连接Turn Server 流程①…...
HTTP---基础知识
天天开心!!! 文章目录 一、HTTP基本概念1. 什么是HTTP,又有什么用?2. 一次HTTP请求的过程3.HTTP的协议头4.POST和GET的区别5. HTTP状态码6.HTTP的优缺点 二、HTTP的版本演进1.各个版本的应用场景2、注意要点 三、HTTP与…...
Redis6数据结构之List类型
redis的List类型底层结构是双向链表,插入删除时间复杂度O(1)快,查找为O(n)慢。 应用场景:简单队列、最新评论列表、非实时排行榜(定时计算榜单,如笔记本日销榜单)。 常用命令: lpush将一个或多个值从左边…...
DeepSeek接入飞书多维表格,效率起飞!
今天教大家把DeepSeek接入飞书表格使用。 准备工作:安装并登录飞书;可以准备一些要处理的数据,确保数据格式正确,如 Excel、CSV 等,也可直接存储到飞书多维表格。 创建飞书多维表格:打开飞书,点…...
[FGPA基础学习]分秒计数器的制作
分秒计数器设计 本次实验内容为:DE2-115板子上用 Verilog编程实现一个 分秒计数器,并具备按键暂停、按键消抖功能 一、系统架构设计 顶层模块划分 顶层模块(top) ├── 按键消抖模块(key_debounce) ├…...
【Spring Boot 与 Spring Cloud 深度 Mape 之十】体系整合、部署运维与进阶展望
【Spring Boot 与 Spring Cloud 深度 Mape 之十】体系整合、部署运维与进阶展望 #微服务实战 #Docker #Kubernetes #SpringSecurity #OAuth2 #分布式事务 #Seata #ServiceMesh #总结 #SpringCloud #SpringBoot 系列终章:经过前九篇 [【深度 Mape 系列】] 的系统学习…...
【商城实战(97)】ELK日志管理系统的全面应用
【商城实战】专栏重磅来袭!这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建,运用 uniapp、Element Plus、SpringBoot 搭建商城框架,到用户、商品、订单等核心模块开发,再到性能优化、安全加固、多端适配,乃至运营推广策略,102 章内容层层递进。无论是想…...
高并发系统下的订单号生成服务设计与实现
目录 引言 订单号设计的关键考量因素 基础需求分析 唯一性保障 数据量预估 可读性设计 系统架构考量 分库分表兼容 可扩展性设计 技术选型与比较 性能优化 高可用性保障 实践案例:高并发系统订单号结构设计 结构详解 业务类型标识(2位) 唯一标识部分…...
每日算法-250329
记录今天学习的三道算法题:两道滑动窗口和一道栈的应用。 2904. 最短且字典序最小的美丽子字符串 题目描述 思路 滑动窗口 解题过程 题目要求找到包含 k 个 ‘1’ 的子字符串,并且需要满足两个条件: 最短长度:在所有包含 k 个 …...
向量数据库学习笔记(2) —— pgvector 用法 与 最佳实践
关于向量的基础概念,可以参考:向量数据库学习笔记(1) —— 基础概念-CSDN博客 一、 pgvector简介 pgvector 是一款开源的、基于pg的、向量相似性搜索 插件,将您的向量数据与其他数据统一存储在pg中。支持功能包括&…...
蓝桥杯 之 二分
文章目录 习题肖恩的n次根分巧克力2.卡牌 二分是十分重要的一个算法,常常用于求解一定范围内,找到满足条件的边界值的情况主要分为浮点数二分和整数二分二分问题,最主要是写出这个check函数,这个check函数最主要就是使用模拟的方法…...
从零开始研发GPS接收机连载——18、北斗B1的捕获和跟踪
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 从零开始研发GPS接收机连载——18、北斗B1的捕获和跟踪 B1信号的捕获B1信号的跟踪 前面已经验证了射频能够接收到B1的信号,通过FPGA采集了IQ信号之后能够通过matl…...
sqlalchemy:将mysql切换到OpenGauss
说明 之前python的项目使用的mysql,近期要切换到国产数据库OpenGauss。 之前的方案是fastapisqlalchemy,测试下来发现不用改代码,只要改下配置即可。 切换方案 安装openGauss-connector-python-psycopg2 其代码工程在:https:…...
memtest86检测内存
上次在R730安装万兆网卡的时候,使用过memtest64进行测试。这个操作肯定是有用的,我就用这个方法查出有问题的内存条,及时找商家进行了更换。 但是该方案有个问题,只能锁定部分内存,如下图,只测试到了23G左…...
OpenCV图像拼接(10)用于实现图像拼接过程中的时间流逝(timelapse)效果的一个类cv::detail::Timelapser
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::detail::Timelapser 是 OpenCV 库中用于实现图像拼接过程中的时间流逝(timelapse)效果的一个类。它通常用于将一系列…...
验证linux多进程时间片切换的程序
一、软件需求 在同时运行一个或多个一味消耗 CPU 时间执行处理的进程时,采集以下统计信息。 ・在某一时间点运行在逻辑 CPU 上的进程是哪一个 ・每个进程的运行进度 通过分析这些信息,来确认本章开头对调度器的描述是否正确。实验程序的…...
【Basys3】外设-灯和数码管
灯 约束文件 set_property PACKAGE_PIN W5 [get_ports CLK] set_property PACKAGE_PIN U18 [get_ports rst] set_property PACKAGE_PIN U16 [get_ports {led[0]}] set_property PACKAGE_PIN E19 [get_ports {led[1]}] set_property PACKAGE_PIN U19 [get_ports {led[2]}] set…...
axios文件下载使用后端传递的名称
java后端通过HttpServletResponse 返回文件流 在Content-Disposition中插入文件名 一定要设置Access-Control-Expose-Headers,代表跨域该Content-Disposition返回Header可读,如果没有,前端是取不到Content-Disposition的,可以在统…...
从零开始搭建Anaconda环境
Anaconda是一个流行的Python数据科学平台,包含conda包管理器、Python解释器和大量预装的数据科学工具包。以下是详细的安装和配置步骤: 1. 下载Anaconda 访问Anaconda官方网站 根据你的操作系统(Windows/macOS/Linux)选择相应版本 推荐下载Python 3.x版…...
TDengine 中的命名与边界
简介 本章主要介绍命名的合法字符集和限制规则,这对于正确使用 TDengine,减小报错很重要,这些规则在 SQL 语句中都生效,在使用过程中要注意,避免不必要的错误。 名称命名规则 合法字符:英文字符、数字和…...
软件架构设计中的软件过程模型初识
软件架构设计中的软件过程模型是指导软件开发过程的框架,它们定义了软件开发的不同阶段、活动、任务和角色。结合具体的使用场景,可以更好地理解这些模型如何在实际项目中应用。以下将详细介绍几种常见的软件过程模型,并结合典型场景进行讲解…...
基于ssm的课程辅助教学平台(全套)
互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对《离散结构》课程教学信息管理混乱,出错率高,信息安…...
[创业之路-344]:战略的本质是选择、聚焦, 是成本/效率/低毛利优先,还是差易化/效益/高毛利优先?无论是成本优先,还是差易化战略,产品聚焦是前提。
前言: 一、战略的本质是选择、聚焦 关于战略的本质,触及了商业竞争的核心矛盾:选择成本优先(效率/低毛利)还是差异化(效益/高毛利),本质上是对企业战略方向的终极拷问。 1、战略选…...
洛谷题单1-P5705 【深基2.例7】数字反转-python-流程图重构
题目描述 输入一个不小于 100 100 100 且小于 1000 1000 1000,同时包括小数点后一位的一个浮点数,例如 123.4 123.4 123.4 ,要求把这个数字翻转过来,变成 4.321 4.321 4.321 并输出。 输入格式 一行一个浮点数 输出格式 …...
Typora 小乌龟 git 上传到gitee仓库教程
首先进行资源分享 通过网盘分享的文件:TortoiseGit-LanguagePack-2.17.0.0-64bit-zh_CN.msi等4个文件 链接: https://pan.baidu.com/s/1NC8CKLifCEH_YixDU3HG_Q?pwdqacu 提取码: qacu --来自百度网盘超级会员v3的分享 首先将软件进行解压 看自己电脑的版本进行…...
