如何在本地运行Perl脚本连接Docker中部署的PostgreSQL数据库
报错原因
你的Perl安装脚本内部需要调用PostgreSQL的psql命令行客户端完成操作,你本地仅在Docker中运行了PostgreSQL服务端,未安装本地客户端工具,因此系统无法识别psql命令。
解决方案
方案1:安装本地PostgreSQL客户端(最简便)
- 下载Windows版本的PostgreSQL安装包,安装时仅勾选 Command Line Tools 组件即可,无需安装数据库服务端、其他管理工具等额外内容
- 安装完成后,将PostgreSQL安装目录下的
bin文件夹路径(默认是C:\Program Files\PostgreSQL\对应版本号\bin)添加到系统环境变量PATH中 - 重启命令行窗口,执行
psql --version验证,正常输出版本信息后,直接运行你原来的Perl命令即可:perl install.pl FULL SCHEMA_NAME 127.0.0.1 5432 postgres password
方案2:无需安装本地客户端,通过Docker调用容器内的psql
前提是你的PostgreSQL容器处于正常运行状态(和你当前状态一致),不需要修改数据库连接参数,只需调整脚本内psql的调用逻辑:
- 找到脚本中执行
psql命令的代码段,将所有psql开头的执行命令替换为docker exec -i postgres psql - 替换完成后直接运行原Perl命令即可,系统会通过Docker调用容器内预装的psql客户端完成操作,无需本地安装psql程序
内容的提问来源于stack exchange,提问作者user17182058
相关产品推荐
相关产品推荐

