docker 搭建單機(jī)PostgreSQL操作詳解
一、前言
在實(shí)際項(xiàng)目中,PostgreSQL具有很多使用場(chǎng)景,為了方便應(yīng)用開發(fā)時(shí)快速接入和調(diào)試,需要有PostgreSQL環(huán)境,本文演示如何基于linux環(huán)境搭建單節(jié)點(diǎn)postgresql完整操作過程。
二、前置準(zhǔn)備
2.1 服務(wù)器環(huán)境
基于centos7以上版本的系統(tǒng),虛擬機(jī)或云服務(wù)一臺(tái),配置不低于2C4G。
2.2 docker環(huán)境
提前在服務(wù)器安裝docker環(huán)境,后面需要基于docker安裝PostgreSQL。
三、docker安裝PostgreSQL過程
3.1 獲取PostgreSQL鏡像
使用下面的命令獲取鏡像
docker pull postgres
3.2 啟動(dòng)容器
3.2.1 創(chuàng)建數(shù)據(jù)卷目錄
為了后續(xù)pg數(shù)據(jù)的持久化,需要提前創(chuàng)建一個(gè)數(shù)據(jù)卷映射目錄
mkdir /usr/local/soft/pg/data
3.2.2 啟動(dòng)pg容器
使用下面的命令啟動(dòng)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
參數(shù)說明:
- -d ,以后臺(tái)進(jìn)程啟動(dòng);
- --name ,指定容器的名字為 :root;
- POSTGRES_USER=postgres ,指定初始化的連接賬戶;
- POSTGRES_PASSWORD=123456 ,指定初始化的連接密碼;
- ALLOW_IP_RANGE=0.0.0.0/0 ,指定允許所有的客戶端可以連接;
- POSTGRES_DB=postgres ,指定默認(rèn)的數(shù)據(jù)庫(kù)名稱;
- -v /usr/local/soft/pg/data:/var/lib/postgresql/data ,指定pg數(shù)據(jù)庫(kù)的數(shù)據(jù)卷;
- -p 5432:5432 ,容器與宿主機(jī)的映射端口,默認(rèn)為5432 ;
容器運(yùn)行成功,可以看到啟動(dòng)了一個(gè)pg的容器;
3.3 客戶端測(cè)試連接數(shù)據(jù)庫(kù)
本地使用navicat連接pg數(shù)據(jù)庫(kù),使用上述初始化的連接信息
四、創(chuàng)建數(shù)據(jù)庫(kù)與授權(quán)
和mysql在使用的時(shí)候類似,為了保證操作pg數(shù)據(jù)庫(kù)的安全性,需要進(jìn)行相關(guān)的授權(quán)操作,pg的授權(quán)與mysql數(shù)據(jù)庫(kù)的授權(quán)有所不同,接下來看具體的操作演示過程。
4.1 進(jìn)入PG容器
找到容器ID,使用下面的命令進(jìn)入容器
docker exec -it 容器ID /bin/bash
4.2 PG常用操作命令
4.2.1 進(jìn)入命令行
進(jìn)入容器之后,使用下面的命令進(jìn)入PG的操作命令行,類似于mysql的命令行工具
psql -U postgres -h 服務(wù)器IP -p 54132 postgres
輸入密碼,驗(yàn)證成功后,就來到下面的命令行操作界面:
4.2.2 常用操作命令
1)列出當(dāng)前所有數(shù)據(jù)庫(kù)
\l
2)列出當(dāng)前數(shù)據(jù)庫(kù)的所有表
默認(rèn)情況下,登錄進(jìn)來使用的是postges這個(gè)數(shù)據(jù)庫(kù),使用下面的命令可以查看所有表
3)切換數(shù)據(jù)庫(kù)
使用下面的命令切換到另一個(gè)數(shù)據(jù)庫(kù)
\c 數(shù)據(jù)庫(kù)名稱
4)創(chuàng)建數(shù)據(jù)庫(kù)
CREATE DATABASE 數(shù)據(jù)庫(kù)名稱;
5)創(chuàng)建賬戶
CREATE USER 用戶名 WITH PASSWORD '密碼';
6)賬戶授權(quán)
pg數(shù)據(jù)庫(kù)中對(duì)于連接的賬戶需要進(jìn)行授權(quán),有數(shù)據(jù)庫(kù)授權(quán),表授權(quán)等,下面分別是數(shù)據(jù)庫(kù)授權(quán),表授權(quán)的命令
一般下面這兩個(gè)命令是連起來用的,即先對(duì)數(shù)據(jù)庫(kù)的連接賬戶授權(quán),僅僅授權(quán)數(shù)據(jù)庫(kù)還不夠,還需要對(duì)數(shù)據(jù)庫(kù)下面的所有表授權(quán)才可正常使用;
GRANT CONNECT, CREATE, TEMPORARY ON DATABASE "數(shù)據(jù)庫(kù)名稱" TO 用戶名; GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO 用戶名;
補(bǔ)充說明
設(shè)置默認(rèn)權(quán)限,使某個(gè)用戶對(duì)未來在 public 模式下創(chuàng)建的表也擁有全部權(quán)限
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL PRIVILEGES ON TABLES TO 用戶名;
四、寫在文末
本文通過實(shí)際案例操作演示了如何基于Docker搭建pg的完整過程,并補(bǔ)充了pg數(shù)據(jù)庫(kù)操作的常用命令和授權(quán)命令,希望對(duì)看到的同學(xué)有用,本篇到此結(jié)束,感謝觀看。
到此這篇關(guān)于docker 搭建單機(jī)PostgreSQL操作詳解的文章就介紹到這了,更多相關(guān)docker 單機(jī)PostgreSQL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker?創(chuàng)建centos容器集群并實(shí)現(xiàn)遠(yuǎn)程登錄功能
這篇文章主要介紹了Docker?創(chuàng)建centos容器集群并實(shí)現(xiàn)遠(yuǎn)程登錄,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03jenkins構(gòu)建Docker 鏡像實(shí)例詳解
這篇文章主要介紹了 jenkins構(gòu)建Docker 鏡像實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04docker搭建php+nginx+swoole+mysql+redis環(huán)境的方法
這篇文章主要介紹了docker搭建php+nginx+swoole+mysql+redis環(huán)境的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-03-03docker下遷移elasticsearch問題以及解決方案
文章描述了如何將Elasticsearch數(shù)據(jù)從一個(gè)服務(wù)器遷移到另一個(gè)服務(wù)器,包括數(shù)據(jù)掛載、版本一致性、啟動(dòng)命令的匹配以及可能遇到的權(quán)限和節(jié)點(diǎn)故障問題的解決方法2024-11-11Docker部署Django+Mysql+Redis+Gunicorn+Nginx的實(shí)現(xiàn)
這篇文章主要介紹了Docker 部署 Django+Mysql+Redis+Gunicorn+Nginx,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11win7環(huán)境下Docker快速構(gòu)建及阿里云容器加速配置詳解
這篇文章主要介紹了win7環(huán)境下Docker快速構(gòu)建及阿里云容器加速配置詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09