【云原生】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數據庫操作的常用命令和授權命令,希望對看到的同學有用,本篇到此結束,感謝觀看。

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處: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安裝 下載…