docker 操作postgresql和postgresql导入与导出数据

导出数据
//进入docker容器 postgres-db 容器名
docker exec -it postgres-db /bin/bash
//切换postgres用户
su - postgres
//导出命令
pg_dump -U postgres traffic > ./traffic.sql
//退出容器,进入宿主机
exit 两次
//从容器导出到宿主机
docker cp postgres-db:/var/lib/postgresql/traffic.sql ./
//通过ftcp,或者winscp下载文件到本地

导入数据
//从宿主机导入docker,通过winscp上传traffic.sql文件

//注意注意,将sql文件放入到quansheng-basic/postgresql/data下,容器和宿主机是映射的

//进入docker容器
docker exec -it postgres-db /bin/bash
//切换postgres用户
su - postgres
//进入到数据库中
psql
//查看数据库
\l
//如果存在库,则修改库名
ALTER DATABASE traffic RENAME TO traffic0815;
//改完名后,创建数据库
CREATE DATABASE traffic OWNER postgres;
问题:
ERROR: database “db1” is being accessed by other users
DETAIL: There are 17 other sessions using the database.
解决:
SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE datname=‘traffic’ AND pid<>pg_backend_pid();
//再次执行修改库名操作即可

// 退出数据库,进入容器中
exit
//导入数据库
psql -U postgres -d traffic -a -f “/var/lib/postgresql/data/traffic.sql”;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值