配置postgres数据库 和数据库web管理pgAdmin4 在 Windows上wsl2 Docker
postgresql 官方https://www.postgresql.org/download/
// 创建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