【PostgreSQL】怎样免密使用PostgreSQL数据库内置工具

打印 上一主题 下一主题

主题 1020|帖子 1020|积分 3060

我们在PostgreSQL数据库自带的各种工具时,每次使用都要输入数据库暗码。比如在使用pg_dump 备份数据库数据时,使用 pg_restore 规复数据库数据时。或者是在使用 pgbench 工具测试数据库性能时,每跑一个用例都要输入一次数据库暗码,这里我们通过配置的方式,以后再使用这些工具就不需要输入数据库暗码了。
  我们下面以使用 pg_restore 工具规复数据为例举行演示。在使用 pg_restore 规复数据时,假如需要在背景运行并输入暗码,可以通过以下方法办理暗码输入标题,同时将日志输出到文件中:

方法 1:使用 .pgpass 文件主动输入暗码

PostgreSQL 支持通过 .pgpass 文件主动提供暗码,避免手动输入。
步骤:


  • 创建 .pgpass 文件
    在用户的主目次下创建 .pgpass 文件(假如不存在),并设置权限为 600(仅用户可读写)。我是使用 root 用户实验,所以直接在 /root/ 目次下创建该文件。
    1. touch ~/.pgpass
    2. chmod 600 ~/.pgpass
    复制代码
  • 编辑 .pgpass 文件
    在 .pgpass 文件中添加以下内容:
    1. hostname:port:database:username:password
    复制代码
    例如:
    1. localhost:5432:database_test:test_user:test_password
    复制代码

    • hostname: 数据库主机;
    • port: 数据库端口(PostgreSQL数据库默认是 5432);
    • database: 数据库名称;
    • username: 数据库用户名;
    • password: 数据库暗码;

  • 运行 pg_restore
    使用 nohup 和重定向运行 pg_restore,此时不需要手动输入暗码:
    1. nohup pg_restore -U your_username -d database_name backup_file.dump > restore.log 2>&1 &
    复制代码
我在服务器上使用 root 用户乐成实验该下令,不需要输入数据库暗码。


方法 2:使用环境变量 PGPASSWORD

可以通过设置环境变量 PGPASSWORD 来提供暗码。
步骤:


  • 设置环境变量
    在运行 pg_restore 之前,设置 PGPASSWORD 环境变量:
    1. export PGPASSWORD='your_password'
    复制代码
  • 运行 pg_restore
    使用 nohup 和重定向运行 pg_restore:
    1. nohup pg_restore -U your_username -d your_database_name your_backup_file.dump > restore.log 2>&1 &
    复制代码
    PS:这种方法会将暗码袒露在下令行历史中,可能存在安全风险。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

伤心客

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表