免密使用PostgreSQL数据库内置工具的两种方法

 更新时间:2025年03月09日 09:50:21   作者:伏游  
我们在PostgreSQL数据库自带的各种工具时,每次使用都要输入数据库密码,这里我们通过配置的方式,以后再使用这些工具就不需要输入数据库密码了,需要的朋友可以参考下

引言

我们在PostgreSQL数据库自带的各种工具时,每次使用都要输入数据库密码。比如在使用pg_dump 备份数据库数据时,使用 pg_restore 恢复数据库数据时。或者是在使用 pgbench 工具测试数据库性能时,每跑一个用例都要输入一次数据库密码,这里我们通过配置的方式,以后再使用这些工具就不需要输入数据库密码了。

我们下面以使用 pg_restore 工具恢复数据为例进行演示。在使用 pg_restore 恢复数据时,如果需要在后台运行并输入密码,可以通过以下方法解决密码输入问题,同时将日志输出到文件中:

方法 1:使用 .pgpass 文件自动输入密码

PostgreSQL 支持通过 .pgpass 文件自动提供密码,避免手动输入。

步骤:

  • 创建 .pgpass 文件
    在用户的主目录下创建 .pgpass 文件(如果不存在),并设置权限为 600(仅用户可读写)。我是使用 root 用户执行,所以直接在 /root/ 目录下创建该文件。
touch ~/.pgpass
chmod 600 ~/.pgpass
  • 编辑 .pgpass 文件
    在 .pgpass 文件中添加以下内容:
hostname:port:database:username:password

例如:

localhost:5432:database_test:test_user:test_password
    • hostname: 数据库主机;
    • port: 数据库端口(PostgreSQL数据库默认是 5432);
    • database: 数据库名称;
    • username: 数据库用户名;
    • password: 数据库密码;
  1. 运行 pg_restore
    使用 nohup 和重定向运行 pg_restore,此时不需要手动输入密码:

nohup pg_restore -U your_username -d database_name backup_file.dump > restore.log 2>&1 &

我在服务器上使用 root 用户成功执行该命令,不需要输入数据库密码。

方法 2:使用环境变量 PGPASSWORD

可以通过设置环境变量 PGPASSWORD 来提供密码。

步骤:

  • 设置环境变量
    在运行 pg_restore 之前,设置 PGPASSWORD 环境变量:

export PGPASSWORD='your_password'
  • 运行 pg_restore
    使用 nohup 和重定向运行 pg_restore:
nohup pg_restore -U your_username -d your_database_name your_backup_file.dump > restore.log 2>&1 &

PS:这种方法会将密码暴露在命令行历史中,可能存在安全风险。

到此这篇关于免密使用PostgreSQL数据库内置工具的两种方法的文章就介绍到这了,更多相关免密使用PostgreSQL内置工具内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • PostgreSQL数据库从入门到精通实战

    PostgreSQL数据库从入门到精通实战

    这是一份详细的PostgreSQL数据库使用指南,涵盖了核心概念、安装、基本操作、高级功能、管理与维护、安全、复制与高可用等多个方面,帮助用户从入门到精通PostgreSQL数据库,这份指南提供了 PostgreSQL的全面概览和核心实践,感兴趣的朋友跟随小编一起看看吧
    2026-01-01
  • PostgreSQL 实现distinct关键字给单独的几列去重

    PostgreSQL 实现distinct关键字给单独的几列去重

    这篇文章主要介绍了PostgreSQL 实现distinct关键字给单独的几列去重,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • postgresql 替换空格 换行和回车的操作

    postgresql 替换空格 换行和回车的操作

    这篇文章主要介绍了postgresql 替换空格 换行和回车的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • 初识PostgreSQL存储过程

    初识PostgreSQL存储过程

    这篇文章主要介绍了初识PostgreSQL存储过程,本文讲解了PostgreSQL中存储过程的语法,并给出了一个操作实例,需要的朋友可以参考下
    2015-01-01
  • PostgreSQL数据库事务出现未知状态的处理方法

    PostgreSQL数据库事务出现未知状态的处理方法

    这篇文章主要给大家介绍了PostgreSQL数据库事务出现未知状态的处理方法,需要的朋友可以参考下
    2017-07-07
  • PostgreSQL时间相差天数代码实例

    PostgreSQL时间相差天数代码实例

    PostgreSQL是一款简介而又性能强大的数据库应用程序,其在日期时间数据方面所支持的功能也都非常给力,这篇文章主要给大家介绍了关于PostgreSQL时间相差天数的相关资料,需要的朋友可以参考下
    2023-11-11
  • Postgresql数据库密码忘记的详细解决方法

    Postgresql数据库密码忘记的详细解决方法

    在使用PostgreSQL数据库时,忘记数据库密码可能会影响到正常的开发和维护工作,这篇文章主要介绍了Postgresql数据库密码忘记的详细解决方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-06-06
  • PostgreSQL登陆方式(本地和远程)的实现

    PostgreSQL登陆方式(本地和远程)的实现

    本次分享一下PostgreSQL 的登陆方式,包括本地登录和远程登录,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-11-11
  • PostgreSql生产级别数据库安装要注意事项

    PostgreSql生产级别数据库安装要注意事项

    这篇文章主要介绍了PostgreSql生产级别数据库安装要注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • Postgresql源码分析returns setof函数oracle管道pipelined

    Postgresql源码分析returns setof函数oracle管道pipelined

    这篇文章主要为大家介绍了Postgresql源码分析returns setof函数oracle管道pipelined,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01

最新评论