Linux에서 PostgreSQL 및 PostGIS를 설치하고 사용하는 방법
이 글은 주로 Linux에서의 PostgreSQL과 PostGIS의 설치와 사용법을 소개하고 주의가 필요한 점을 분석하고 설명합니다. 필요한 친구들이 모두에게 도움이 되기를 바랍니다.
PostgreSQL 및 PostGIS 설치
PostgreSQL 및 PostGIS는 이미 인기 있는 오픈 소스 프로젝트이며 주요 Linux 배포판의 yum 또는 apt 패키지에 포함되어 있습니다. 예를 들어 Ubuntu의 경우 다음 패키지를 설치하면 됩니다.
$ sudo apt-get install postgresql-client postgresql postgis -y
RedHat 시리즈의 경우 다음 패키지를 설치하세요.
$ sudo yum install postgresql-server postgresql postgis
초기 설치 후 postgres라는 데이터베이스와 postgres라는 데이터베이스 사용자가 생성됩니다. 기본. 여기서는 postgres라는 Linux 시스템 사용자도 생성된다는 점에 유의해야 합니다. 앞으로 PostgreSQL을 운영할 때는 새로 생성된 postgres 사용자로 수행해야 합니다.
PostgreSQL 구성
소스 코드에서 설치하는 경우
소스 코드에서 설치하는 것은 권장하지 않지만 너무 번거롭고 다양한 make 설치에서 오류가 발생하기 쉽습니다. 마지막으로 rpm을 사용하여 설치했습니다. 하지만 시간을 들여 연구하고 성공적으로 설치했기 때문에 기록해 두겠습니다. 하지만 오류가 있을 수 있으므로 독자들이 소스 코드에서 설치하려는 경우 롤백을 준비하시기 바랍니다.
소스 컴파일을 사용하고 설치를 수행하는 경우 이 섹션에는 추가 구성이 필요합니다.
CentOS 시리즈도 설치하려면...
기본 make 설치 후 PostgreSQL 설치 디렉터리는 /usr/local/pgsql/
먼저 이 링크의 참고에 따르면, 환경 변수를 구성해야 합니다
$ set $PGDATA = "/usr/local/pgsql/database"
그러나 pg_ctl start를 실행하면 오류가 나타납니다.
pg_ctl: directory "/usr/local/pgsql/database" is not a database cluster directory
이 경우 실제 데이터베이스를 생성하려면 공식 PostGreSQL 문서의 단계를 따라야 합니다. :
PostgreSQL: 문서: 9.1: 데이터베이스 클러스터 만들기
먼저 postgres라는 이름의 사용자 계정을 만듭니다
$ usradd postgres $ sudo chown postgres /usr/local/pgsql/database
그런 다음 이 계정을 입력하고 데이터베이스를 만듭니다
$ sudo su postgres $ initdb -D /usr/local/pgsql/database/
At 이번에는 쉘이 다음을 출력할 것입니다:
The files belonging to this database system will be owned by user "postgres". This user must also own the server process. The database cluster will be initialized with locale "C". The default database encoding has accordingly been set to "SQL_ASCII". The default text search configuration will be set to "english". Data page checksums are disabled. fixing permissions on existing directory /usr/local/pgsql/database ... ok creating subdirectories ... ok selecting default max_connections ... 100 selecting default shared_buffers ... 128MB selecting dynamic shared memory implementation ... posix creating configuration files ... ok creating template1 database in /usr/local/pgsql/database/base/1 ... ok initializing pg_authid ... ok initializing dependencies ... ok creating system views ... ok loading system objects' descriptions ... ok creating collations ... ok creating conversions ... ok creating dictionaries ... ok setting privileges on built-in objects ... ok creating information schema ... ok loading PL/pgSQL server-side language ... ok vacuuming database template1 ... ok copying template1 to template0 ... ok copying template1 to postgres ... ok syncing data to disk ... ok WARNING: enabling "trust" authentication for local connections You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb. Success. You can now start the database server using: pg_ctl -D /usr/local/pgsql/database/ -l logfile start
축하합니다, 다음 PostgreSQL을 시작할 수 있습니다:
pg_ctl -D /usr/local/pgsql/database/ -l /usr/local/pgsql/database/psql.log start
PostgreSQL이 설치된 후 postgres 계정을 입력하고 PostgreSQL 콘솔을 입력하세요:
$ sudo su postgres $ psql
This 이는 동일한 이름을 가진 데이터베이스 사용자로 데이터베이스에 로그인하는 시스템 사용자 postgres와 동일합니다. 그렇지 않으면 psql을 실행할 때마다 매개변수에 사용자를 지정해야 하는데 이는 잊어버리기 쉽습니다.
psql에 비밀번호 설정 - 여기에 설정된 비밀번호는 postgres 시스템 계정의 비밀번호가 아니라 데이터베이스의 사용자 비밀번호입니다.
postgres=# \password postgres
그런 다음 프롬프트에 따라 비밀번호를 입력하세요.
소스 코드에서 PostGIS 설치
소스 코드에서 PostgreSQL을 설치하기로 선택한 경우 먼저 설치한 PostgreSQL 버전을 확인해야 합니다.
그런 다음 PostGIS 웹페이지로 이동하여 PostGIS 버전을 확인하세요. 에 해당합니다.
마지막으로 PostGIS 버전에 맞게 해당 소스를 다운로드합니다
최종 임포트가 너무 번거로워서 작성자가 이 단계에서 막혀서 결국 소스코드부터 설치를 포기했습니다...
PostGIS 확장기능 임포트
postgresql 및 postgis에 따르면 버전에 따라 경로가 약간 다를 수 있습니다. 주로 경로에 버전 정보가 포함되어 있기 때문입니다.
$ sudo su postgres $ createdb template_postgis $ createlang plpgsql template_postgis $ psql -d template_postgis -f /usr/share/postgresql/9.5/contrib/postgis-2.2/postgis.sql $ psql -d template_postgis -f /usr/share/postgresql/9.5/contrib/postgis-2.2/spatial_ref_sys.sql
위 작업에서 "template_postgis"라는 빈 데이터베이스가 생성되었습니다. 이 데이터베이스는 비어 있으며 postgres 사용자에 속합니다. 이 데이터베이스에 데이터를 추가하지 않도록 주의하십시오. 이 데이터베이스를 "템플릿"이라고 부르는 이유는 파생에 사용된다는 의미입니다.
해당 PostGIS 경로가 다를 수 있습니다. 실패할 경우 위 경로 근처에서 더 많은 .sql 파일을 찾아 시도해 보세요.
.shp 파일을 PostGIS 데이터베이스로 변환
.shp를 .sql 파일로 변환
먼저 변환해야 하는 .shp 파일이 /tmp/demo라고 가정합니다. shp를 실행한 후 다음 작업을 수행하세요.
$ sudo su postgres $ cd /tmp $ shp2pgsql -W GBK -s 3857 ./demo.shp entry > demo.sql
여기에서 마지막 문장의 각 부분의 의미를 설명해야 합니다.
- -W GBK: .shp 파일에 중국어 문자가 포함된 경우 다음을 추가하세요. 옵션
- -s 3857: 파일의 참조 좌표계를 지정합니다. 내 .shp 파일은 EPSG를 사용합니다:3857
- ./demo.shp: .shp 파일의 경로
- 항목: 가져올 데이터베이스 테이블의 이름을 나타냅니다. - 이 .shp 파일이 각 테이블을 나타낸다고 가정합니다. Entry이므로 이름을 "entry"로 지정했습니다.
- demo.sql
- .sql 파일을 가져온 후 PostgreSQL 데이터베이스로 직접 가져올 수 있습니다.
PostGIS 데이터베이스 만들기
여기에서는 이전 템플릿을 사용해야 합니다.
sudo su postgres psql CREATE DATABASE newdb WITH TEMPLATE originaldb OWNER dbuser;
- newdb: 새 데이터베이스 이름
- originaldb: 이전 template_postgis
dbuser:你的账户名,我一般使用 postgres
导入 .sql 文件
sudo su postgres psql \c newdb \i demo.sql \d
可以看到,.sql 文件已经被导入了。
设置数据库权限
OK,现在我们在本机(服务器 IP 假设是 192.168.1.111)用以下命令登录 psql,会发现一段输出:
$ psql -h 192.168.1.111 -p 5432 psql: could not connect to server: Connection refused Is the server running on host "100.94.110.105" and accepting TCP/IP connections on port 5432?
这是因为 PostgreSQL 默认不对外开放权限,只对监听环回地址。要修改的话,需要找到 postgresql.conf 文件,修改值 listen_addresses:
listen_addresses = '*'
相关推荐:
위 내용은 Linux에서 PostgreSQL 및 PostGIS를 설치하고 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Apache를 시작하는 단계는 다음과 같습니다. Apache 설치 (명령 : Sudo apt-get Apache2를 설치하거나 공식 웹 사이트에서 다운로드) 시작 apache (linux : sudo systemctl start : windes (선택 사항, Linux : Sudo SystemCtl

Apache 80 포트가 점유되면 솔루션은 다음과 같습니다. 포트를 차지하고 닫는 프로세스를 찾으십시오. 방화벽 설정을 확인하여 Apache가 차단되지 않았는지 확인하십시오. 위의 방법이 작동하지 않으면 Apache를 재구성하여 다른 포트를 사용하십시오. Apache 서비스를 다시 시작하십시오.

Apache 서버를 다시 시작하려면 다음 단계를 따르십시오. Linux/MacOS : Sudo SystemCTL 실행 Apache2를 다시 시작하십시오. Windows : Net Stop Apache2.4를 실행 한 다음 Net Start Apache2.4를 시작하십시오. Netstat -A |를 실행하십시오 서버 상태를 확인하려면 Findstr 80.

이 안내서는 데비안 시스템에서 syslog를 사용하는 방법을 배우도록 안내합니다. Syslog는 로깅 시스템 및 응용 프로그램 로그 메시지를위한 Linux 시스템의 핵심 서비스입니다. 관리자가 시스템 활동을 모니터링하고 분석하여 문제를 신속하게 식별하고 해결하는 데 도움이됩니다. 1. syslog에 대한 기본 지식 syslog의 핵심 기능에는 다음이 포함됩니다. 로그 메시지 중앙 수집 및 관리; 다중 로그 출력 형식 및 대상 위치 (예 : 파일 또는 네트워크) 지원; 실시간 로그보기 및 필터링 기능 제공. 2. Syslog 설치 및 구성 (RSYSLOG 사용) Debian 시스템은 기본적으로 RSYSLOG를 사용합니다. 다음 명령으로 설치할 수 있습니다 : sudoaptupdatesud

다음과 같은 이유로 Apache가 시작할 수 없습니다. 구성 파일 구문 오류. 다른 응용 프로그램 포트와 충돌합니다. 권한 문제. 기억이 없습니다. 프로세스 교착 상태. 데몬 실패. Selinux 권한 문제. 방화벽 문제. 소프트웨어 충돌.

인터넷은 단일 운영 체제에 의존하지 않지만 Linux는 이에 중요한 역할을합니다. Linux는 서버 및 네트워크 장치에서 널리 사용되며 안정성, 보안 및 확장 성으로 인기가 있습니다.

Apache 취약점을 수정하는 단계는 다음과 같습니다. 1. 영향을받는 버전을 결정합니다. 2. 보안 업데이트를 적용합니다. 3. Apache를 다시 시작하십시오. 4. 수정을 확인하십시오. 5. 보안 기능을 활성화합니다.

Linux에서 Nginx를 시작하는 단계 : Nginx가 설치되어 있는지 확인하십시오. systemctl start nginx를 사용하여 nginx 서비스를 시작하십시오. SystemCTL을 사용하여 NGINX를 사용하여 시스템 시작시 NGINX의 자동 시작을 활성화하십시오. SystemCTL 상태 nginx를 사용하여 시작이 성공했는지 확인하십시오. 기본 환영 페이지를 보려면 웹 브라우저의 http : // localhost를 방문하십시오.
