원격

2015-01-16 7 views
1

내가 GDAL의 ogr2ogr를 통해 PostgreSQL을으로 Shape 파일을 삽입하려고 ogr2ogr GDAL와 포스트 그레스에 연결하지 못할 명령은 다음과 같습니다원격

ogr2ogr -f 'PostgreSQL' PG:dbname='dbname',user='user',host='172.17.2.176',password='password',port='5432' shapefile -nln 'cities'

그러나, ogr2ogr는 할 수있을 것 같지 않습니다 별도의 도커 컨테이너에있는 PosgreSQL에 연결하십시오. 모든 연결 매개 변수가 정확하고 다른 연결이 성공적으로 만들어져 동일한 PostgreSQL 컨테이너에 대한 동일한 연결 매개 변수로 실행됩니다. Laravel 마이그레이션, 데이터베이스 및 테이블이 해당 테이블에서 명령을 실행하기 전에 존재하는지 확인하는 명령 줄 sql과 COPY 명령을 사용하여 csv 파일 가져 오기가 모두 ogr2ogr 명령에서 사용 된 동일한 연결 매개 변수를 사용하여 별도의 PostgreSQL 도킹 컨테이너로 성공적으로 실행됩니다.

나는 실행하면

ogrinfo 'PostgreSQL' PG:dbname='dbname',user='user',host='172.17.2.176',password='password',port='5432' 내가 오류 얻을

: 나열된 드라이버의 "다음 드라이버 '소스'의 PostgreSQL을 열 수 없습니다 ..."를

하나가 "- > PostgreSQL "

즉, PostgreSQL 드라이버가로드되어 활성화되어 있습니까? - < 혼란

사용자 1 점은 여기에 공식 PostgreSQL의 고정 표시기의 이미지에서의 .sh 스크립트에 의해 생성 된이 수퍼 유저 권한으로 연결되는 : https://github.com/docker-library/postgres/tree/master/9.4

지금까지 내가보고 내 연구를 통해 찾을 수 구글과 문서, 모든게 정확하고 작동해야합니다 ..

db 연결에 대한 수퍼 유저 권한, 올바른 구문,로드 된 드라이버 .. 무엇이 실종 됐나요? 나는 며칠 동안이 일을하려고 노력 해왔다. 나는 도움이 필요하다.

답변

6

연결 문자열의 구문은 특히 인용문 사용과 관련하여 중요합니다. 이것이 어떻게 생겼는지에 대한 예는 PostgreSQL driver을 참조하십시오. 예를 들어, 시도 :

$ ogrinfo PG:"host=172.17.2.176 port=5432 user='user' password='password' dbname='dbname'" 

을 또한, 자주, 당신은 도와 use environment variables 수있는이 데이터베이스에 연결합니다.

+0

명령 줄에서 암호를 사용하는 것이 안전하지 않습니까? 어떻게 피할 수 있습니까? – Rodrigo

+1

[이 기술] (http://www.postgresql.org/docs/current/static/libpq-pgpass.html)을 사용합니다. –