POSTGRESQL 从PG_DUMP 说起到我没有密码也能工作

本文探讨了在不输入密码的情况下使用PG_DUMP工具进行PostgreSQL数据库备份的方法,包括设置环境变量、使用.pgpass文件和pg_service.conf配置文件。这些技巧对于实现自动化备份流程至关重要,确保了在不同环境下灵活且安全地执行数据库操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

没有无缘无故的爱, 也没有无缘无故的恨, 但有千差万别的利益,千万别高估humanity, 那会让你很失望,做事别做绝,因为利益关系很灵活. 最近抖音上不少人在重复上面的话,不过想想也对,有多少人在生日那天收到的唯一的祝福是,XX银行祝您生日快乐!! 一条及时但却很利益的祝福。

言归正传:

这期有点标题党, 但实际上PG的不少命令对于密码来说,还是挺有意思, 举例如果是MYSQL 我们可以在 -p后跟上密码,而对于PG,我总不能在-W 后面跟密码,如果这点你不懂的话, 那就还是需要在看看 PG_DUMP 的命令以及使用他,便于理解后面的文字.

虽然重点不是PG_DUMP 但还是要写一写,否则真成标题党了.

PG_DUMP 是用来导入导出,备份POSTGRESQL 的一个工具,当然这个工具的存在可以比对成 mysqldump 这个工具, 实际上用这个工具去备份大的数据库,那只能说,真的吗?   你是认真的吗?

实际上pg_dump,可以被明确为一个导入导出的工具可能更合适他的位置.好处是pg_dump 在使用的时候并不会阻塞其他用户对数据库的访问.实际上他们备份出的数据,是逻辑的,而不是物理,这也就确认了,他作为导出工具对于接受方是很灵活的,尤其对于一些版本不同的PG 来说, PG_DUMP 是必须存在的.

PG 导出的数据,都是可以看懂的

下面我们就要来到今天标题党中的 关键问题, 到底怎么在不输入密码的前提下,让PG_DUMP 来进行工作的问题.

看到上图的人,估计会说一句,你傻呀,在-W 后面写密码不就完了, 

好了不行,已经证明了. 那还有同学说, 你不会变通,你执行命令的时候,直接输入密码不就完了.

呵呵 ,那我要是自动化,定期运行pg_dump 怎么办?

啊, 难道回答   臣妾做不到?

方法1 变量法

在执行命令前,通过变量的方法将默认的密码设置成你下一步要使用的密码,然后直接执行pg_dump  ,这样的方法来解决有些命令需要输入密码,自动化的问题.

方法2 .password 法

这个方法的确应该是人尽皆知的,在操作数据库的默认LINUX 用户下,我们产生一个 600权限的文件, .pgpass 文件,里面

存储服务器地址, 端口, 数据库名, 用户名 , 密码

 

直接在执行命令会去寻找

如果.pgpass 文件中没有相关的用户的情况下,或者文件没有找到的情况下, 会报fe_sendauth 无法找到.

上面的两种方法可能比较pop

下面第三种方法

pg_service.conf ,通过定义服务文件的方法,可以对多个数据库备份进行定义

通过定义 pg_service.conf 文件,并在里面写入相关的模块, 一个文件可以包含N个模块,每个模块代表一个连接,通过这样的方式,避免PG_DUMP 输入密码如

[postgres@pg12 pgdata]$ export PGSERVICE=backup

[postgres@pg12 pgdata]$ pg_dump -Fc > /pgdata/pg_dump.sql

[postgres@pg12 pgdata]$ ll -ah

好了到此为止标题党的内容就结束了,第三个方法也是偶然习的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值