配置postgres数据库 和数据库web管理pgAdmin4 在 Windows上wsl2 Docker

配置postgres数据库 和数据库web管理pgAdmin4 在 Windows上wsl2 Docker



// 创建docker虚拟网络 

docker network create --subnet=172.16.0.0/16 docker-network

// 关于虚拟网络这块 详细可以用 docker network inspect 虚拟网络id

docker network ls

docker pull postgres

mkdir -p E:\Postgres\master


// -it( --interactive 即使没有连接,也要保持STDIN打开 + --tty 分配一个虚拟的终端 ) -d (–-detach(后台运行))

// --auth-** 就是加验证  --network虚拟网络名 --ip 虚拟ip -h 容器主机名 -p 本地端口:容器端口 --name 容器名

// -e (environment设置环境变量) 密码9527 数据库名PudgeDB 用户pudge -v其实就是--link做文件夹映射, postgres镜像名

```

docker run -d --network docker-network --ip 172.16.0.101 -h postgres-maste -p 5432:5432 --name postgres_master  -e POSTGRES_PASSWORD="9527" -e POSTGRES_DB="admin" -e POSTGRES_USER="pudge" -e LANG="C.UTF-8" -e 'TZ=Asia/Shanghai' -v /E/Postgres/master:/var/lib/postgresql/data  postgres

```
安装管理 pgAdmin官方 https://www.pgadmin.org/download/

// docker 安装
docker pull dpage/pgadmin4
// 运行容器 PGADMIN_DEFAULT_EMAIL=设置个邮箱 PGADMIN_DEFAULT_PASSWORD密码

```

docker run -d --network docker-network --ip 172.16.0.111 -p 5433:80 --name pgadmin4_ui -e "PGADMIN_DEFAULT_EMAIL=EternalNightYeah@yeah.net" -e "PGADMIN_DEFAULT_PASSWORD=9527" dpage/pgadmin4

```

// 浏览器输入  http://EternalNightYeah@yeah.net:9527@localhost:5433
http://localhost:5433/login? 输入邮箱和密码
这里firefox 就是坑,我还以为我docker配置出错了呢。
我docker pull 了个pgAdmin 在firefox 上面映射5433端口 发现打不开, 后面想起 公司的网页也有相关限制,也解决了。 于是乎 

 

 

 

 

 

 

 

// 这是系统默认创建的模板,后面我们得插入参数
CREATE TABLE IF NOT EXISTS public.users
(
    name character(100),
    status boolean,
    id integer NOT NULL,
    CONSTRAINT my_key PRIMARY KEY (id)
);


ALTER TABLE public.users
    OWNER to pudge;


COMMENT ON TABLE public.users
    IS '用户列表';

INSERT INTO public.users(name, status, id)VALUES('pudge', true, 1);

 

 

 最后附上相关的命令行

// 进入docker 容器
docker exec -it postgres_master bash
// 进入postgresql
psql -U pudge -d PudgeDB -h localhost -p 5432
// 创建账号
CREATE USER pudge2 WITH PASSWORD '9527';
// 授权DBGRANT ALL ON DATABASE postgres TO pudge2;
// 单条授权表
GRANT ALL ON public.users TO pudge2;
// 批量授权表
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO pudge2;
// 单条授权sequence
GRANT ALL ON SEQUENCE public.users_id_seq to pudge2;
// 批量授权sequence
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO pudge2;
# 修改库的所有者
alter database PudgeDB owner to pudge2;
#修改schema所有者
alter schema wechat owner to pudge2

操作表单

// 创建表单模板
// 这是系统默认创建的模板,后面我们得插入参数
CREATE TABLE IF NOT EXISTS public.Users3
(
    name character(100),
    status boolean,
    id integer NOT NULL,
    CONSTRAINT my_key3 PRIMARY KEY (id)
);
ALTER TABLE public.Users3
    OWNER to pudge2;

COMMENT ON TABLE public.Users3
    IS '用户列表';

// 插入 注:如果表中字段有大写的字段,则需要对应的加上双引号。例: INSERT INTO public.Users3("Name", status, id)VALUES('pudge', true, 2);

INSERT INTO public.Users3(name, status, id)VALUES('pudge', true, 2);
// 查看
SELECT * FROM public.Users3;

// 删除表
drop table public.Users3;
// 清空表名
delete from public.Users3;

1379号监听员 Pudge

 
 
 
原文地址:https://www.cnblogs.com/eternalnight/p/15253594.html