pg_restore导入SQL报错后用psql无法连接远程PostgreSQL问题求助
问题原因及解决方案
第一个报错的根因
pg_restore工具仅支持导入PostgreSQL自定义格式、tar格式等非文本类型的备份文件,你持有的byoryn_resource.sql是明文文本格式的备份文件,确实需要使用psql工具导入,这一步的调整方向是正确的。
第二个报错的根因
你执行的psql命令没有指定远程PostgreSQL服务器的连接参数,psql默认会尝试连接本地运行的PostgreSQL服务,而你本地并未运行对应服务,因此抛出找不到Unix域套接字的错误。
正确操作步骤
- 提前确认远程PostgreSQL服务器的必要连接信息:
- 远程服务器的公网IP/域名
- PostgreSQL服务监听端口(默认值为5432)
- 拥有
analyses_db写入权限的账号用户名 - 对应账号的登录密码
- 执行带远程连接参数的导入命令,命令模板如下:
psql -h 远程服务器IP/域名 -p 端口 -U 用户名 -d analyses_db -f byoryn_resource.sql
参数说明:
-h:指定要连接的远程PostgreSQL主机地址,必填-p:指定PostgreSQL服务端口,使用默认5432时可省略该参数-U:指定登录的用户名,必填-d:指定目标导入的数据库名-f:指定本地待导入的SQL文件路径
常见注意事项
- 执行命令后会弹出密码输入提示,输入密码时终端不会显示输入字符,属于正常安全机制,输入完成后回车即可
- 若出现连接被拒绝的报错,请确认远程PostgreSQL服务的
pg_hba.conf配置中已允许你当前操作机器的IP访问,且远程服务器的防火墙已开放PG服务端口(默认5432)的入站规则 - 若导入过程中出现权限类报错,建议切换为
analyses_db的所有者账号执行导入操作
内容的提问来源于stack exchange,提问作者cweih
相关产品推荐
相关产品推荐

