当前位置: 首页 > news >正文

【PostgreSQL】如何免密使用PostgreSQL数据库内置工具

如何免密使用PostgreSQL数据库内置工具

      • 方法 1:使用 `.pgpass` 文件自动输入密码
        • 步骤:
      • 方法 2:使用环境变量 `PGPASSWORD`
        • 步骤:

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

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


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

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

步骤:
  1. 创建 .pgpass 文件
    在用户的主目录下创建 .pgpass 文件(如果不存在),并设置权限为 600(仅用户可读写)。我是使用 root 用户执行,所以直接在 /root/ 目录下创建该文件。

    touch ~/.pgpass
    chmod 600 ~/.pgpass
    
  2. 编辑 .pgpass 文件
    .pgpass 文件中添加以下内容:

    hostname:port:database:username:password
    

    例如:

    localhost:5432:database_test:test_user:test_password
    
    • hostname: 数据库主机;
    • port: 数据库端口(PostgreSQL数据库默认是 5432);
    • database: 数据库名称;
    • username: 数据库用户名;
    • password: 数据库密码;
  3. 运行 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 来提供密码。

步骤:
  1. 设置环境变量
    在运行 pg_restore 之前,设置 PGPASSWORD 环境变量:

    export PGPASSWORD='your_password'
    
  2. 运行 pg_restore
    使用 nohup 和重定向运行 pg_restore

    nohup pg_restore -U your_username -d your_database_name your_backup_file.dump > restore.log 2>&1 &
    

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


http://www.dtcms.com/a/53864.html

相关文章:

  • 002-Boost共享内存的使用
  • C语言-函数指针与指针函数的区别
  • ChatGPT结合DeepSeek新式文献获取+文献拆解流程分享!学术论文轻松上岸!
  • SCI1区TOP:自适应学习粒子群算法SLPSO,深度解析+性能实测
  • 【孟德尔随机化】PhenoScanner不能用的,替代方法
  • PPT 技能:巧用 “节” 功能,让演示文稿更有序
  • 使用 Arduino 的 WiFi 控制机器人
  • 【人工智能】【Python】在Scikit-Learn中使用KNN(K最近邻算法)
  • Ruoyi+uniapp+websocket点对点和广播通知消息
  • 分享几个论文校对相关的deepseek提示词
  • Linux脚本编程
  • python基础课程整理--字典的基础
  • 图像滑块对比功能的开发记录
  • 芋道打包时报错:缺失@unocss插件
  • WLAN无线组网 WI-FI
  • 使用 Python pandas操作 Excel 文件
  • leetcode0020 - 有效的括号 easy
  • 精选一百道备赛蓝桥杯——2.K倍区间
  • YOLOv10改进之MHAF(多分支辅助特征金字塔)
  • BookChatApp通用书籍阅读APP
  • 云渲染技术在影视特效制作中的核心优势
  • Spring AI+硅基流动DeepSeek语音识别全栈方案:从FFmpeg预处理到分布式推理
  • 量子计算:气候模型的新纪元
  • 采用大模型技术进行知识图谱实体对齐的技术和开源项目
  • flask学习2-应用(博客)
  • 深度理解指针与内存
  • 使用数据库和缓存的时候,是如何解决数据不一致的问题的?
  • android edittext 防止输入多个小数点或负号
  • 开发环境搭建-05.后端环境搭建-前后端联调-通过断点调试熟悉项目代码特点
  • 每日一题----------枚举的注意事项和细节