目录
一、前言
二、前置准备
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数据库操作的常用命令和授权命令,希望对看到的同学有用,本篇到此结束,感谢观看。