使用osm2pgsql导入PBF到PostGIS时遇文件格式检测错误求助
解决osm2pgsql导入PBF时的"Cannot detect file format for 'postgres'"错误
你的命令参数存在使用错误:-W参数的作用是让osm2pgsql以交互式方式提示输入密码,不需要在-W后面直接追加密码字符串。你现在把postgres(密码)写在-W之后,导致程序误将这个字符串识别为待导入的OSM文件,因此抛出"无法检测文件格式"的错误。
正确的导入命令
C:\osm2pgsql>osm2pgsql -s -a -d micronesia --flat-nodes C:\osm2pgsql\srbac.osm.pbf -U postgres -W C:\osm2pgsql\micronesia.osm.pbf
执行该命令后,程序会弹出密码输入提示,此时输入postgres即可正常执行导入流程。
可选优化(避免重复输入密码)
如果不想每次导入都手动输入密码,可采用以下两种方式:
- 修改PostgreSQL的
pg_hba.conf文件,将本地连接的认证方式改为trust(仅建议在本地开发环境使用); - 在
pgpass.conf文件中配置用户名、数据库名、密码的对应关系,配置完成后执行导入命令时无需添加-W参数。
内容的提问来源于stack exchange,提问作者Sasa Stojkovic
相关产品推荐
相关产品推荐

