상세 컨텐츠

본문 제목

039. Raspberry Pi 라즈베리파이 - PostgreSQL(9.6) 재설치 & 외부접속 설정

raspberrypi/raspbian

by ZelKun 2019. 9. 8. 19:05

본문

반응형

pi 설치를 하고 쓰질 않다보니

패스워드가 기억나질 않아

삭제하고 새로 설치를 했습니다

 

참고로 apt-get을 이용해서 삭제해도

설정파일 같은건 삭제가 안되있으니 찾아서 삭제해야 합니다

데이터 디렉토리랑 설정만 지워도 됩니다

 

이전 파일 삭제

sudo apt-get purge postgresql* -y

sudo apt-get autoremove -y && sudo apt-get autoclean -y

sudo rm -rf /etc/postgresql

sudo rm -rf /var/lib/postgresql

 

postgresql 설치

sudo apt-get update -y && sudo apt-get upgrade -y

sudo apt-get install postgresql -y

pi@rasp-dev:~ $ sudo apt-get install postgresql -y

패키지 목록을 읽는 중입니다... 완료

의존성 트리를 만드는 중입니다       

상태 정보를 읽는 중입니다... 완료

The following additional packages will be installed:

  postgresql-9.6 postgresql-client-9.6 postgresql-client-common

  postgresql-common postgresql-contrib-9.6 sysstat

제안하는 패키지:

  postgresql-doc locales-all postgresql-doc-9.6 libdbd-pg-perl isag

다음 새 패키지를 설치할 것입니다:

  postgresql postgresql-9.6 postgresql-client-9.6 postgresql-client-common

  postgresql-common postgresql-contrib-9.6 sysstat

0개 업그레이드, 7개 새로 설치, 0개 제거 및 6개 업그레이드 안 함.

0 바이트/6,043 k바이트 아카이브를 받아야 합니다.

이 작업 후 29.5 M바이트의 디스크 공간을 더 사용하게 됩니다.

패키지를 미리 설정하는 중입니다...

Selecting previously unselected package postgresql-client-common.

(데이터베이스 읽는중 ...현재 125716개의 파일과 디렉터리가 설치되어 있습니다.)

Preparing to unpack .../0-postgresql-client-common_181+deb9u2_all.deb ...

Unpacking postgresql-client-common (181+deb9u2) ...

Selecting previously unselected package postgresql-client-9.6.

Preparing to unpack .../1-postgresql-client-9.6_9.6.13-0+deb9u1_armhf.deb ...

Unpacking postgresql-client-9.6 (9.6.13-0+deb9u1) ...

Selecting previously unselected package postgresql-common.

Preparing to unpack .../2-postgresql-common_181+deb9u2_all.deb ...

'/usr/bin/pg_config /usr/bin/pg_config.libpq-dev()로 전환, postgresql-common 패키지' 추가하는 중

Unpacking postgresql-common (181+deb9u2) ...

Selecting previously unselected package postgresql-9.6.

Preparing to unpack .../3-postgresql-9.6_9.6.13-0+deb9u1_armhf.deb ...

Unpacking postgresql-9.6 (9.6.13-0+deb9u1) ...

Selecting previously unselected package postgresql.

Preparing to unpack .../4-postgresql_9.6+181+deb9u2_all.deb ...

Unpacking postgresql (9.6+181+deb9u2) ...

Selecting previously unselected package postgresql-contrib-9.6.

Preparing to unpack .../5-postgresql-contrib-9.6_9.6.13-0+deb9u1_armhf.deb ...

Unpacking postgresql-contrib-9.6 (9.6.13-0+deb9u1) ...

Selecting previously unselected package sysstat.

Preparing to unpack .../6-sysstat_11.4.3-2_armhf.deb ...

Unpacking sysstat (11.4.3-2) ...

sysstat (11.4.3-2) 설정하는 중입니다 ...

update-alternatives: using /usr/bin/sar.sysstat to provide /usr/bin/sar (sar) in auto mode

postgresql-client-common (181+deb9u2) 설정하는 중입니다 ...

Processing triggers for systemd (232-25+deb9u11) ...

postgresql-common (181+deb9u2) 설정하는 중입니다 ...

supported-versions: WARNING! Unknown distribution: raspbian

debian found in ID_LIKE, treating as Debian

 

Creating config file /etc/postgresql-common/createcluster.conf with new version

 

Creating config file /etc/logrotate.d/postgresql-common with new version

Building PostgreSQL dictionaries from installed myspell/hunspell packages...

Removing obsolete dictionary files:

Created symlink /etc/systemd/system/multi-user.target.wants/postgresql.service → /lib/systemd/system/postgresql.service.

Processing triggers for man-db (2.7.6.1-2) ...

postgresql-client-9.6 (9.6.13-0+deb9u1) 설정하는 중입니다 ...

update-alternatives: using /usr/share/postgresql/9.6/man/man1/psql.1.gz to provide /usr/share/man/man1/psql.1.gz (psql.1.gz) in auto mode

postgresql-9.6 (9.6.13-0+deb9u1) 설정하는 중입니다 ...

Creating new cluster 9.6/main ...

  config /etc/postgresql/9.6/main

  data   /var/lib/postgresql/9.6/main

  locale ko_KR.UTF-8

  socket /var/run/postgresql

  port   5432

update-alternatives: using /usr/share/postgresql/9.6/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode

postgresql (9.6+181+deb9u2) 설정하는 중입니다 ...

postgresql-contrib-9.6 (9.6.13-0+deb9u1) 설정하는 중입니다 ...

Processing triggers for systemd (232-25+deb9u11) ...

pi@rasp-dev:~ $ 

설치를 하면 자동으로 postgres 이라는 user 계정이 생기는데

pi계정에서 psql 접속을 하려고 하면 role 없어서 진행이 안된다고 나옵니다

user를 postgres 계정으로 변경해야 합니다

 

계정변경 및 psql 진입

pi@rasp-dev:~ $ psql

psql: 치명적오류:  "pi" (role) 없음

pi@rasp-dev:~ $ su - postgres 

암호:

su: 인증 실패

pi@rasp-dev:~ $ sudo su - postgres 

postgres@rasp-dev:~$ pwd

/var/lib/postgresql/

postgres@rasp-dev:~$ ls

9.6

postgres@rasp-dev:~$ psql

psql (9.6.13)

도움말을 보려면 "help"를 입력하십시오.

 

postgres=# show data_directory;

        data_directory        

------------------------------

 /var/lib/postgresql/9.6/main

(1개 행)

 

postgres=# 

 

 

근데 새로 생긴 계정에 비밀번호를 알 리가 없고

postgres 계정에 패스워드를 변경해야 하는데 귀찮으니

sudo 이용해서 계정을 변경해서 psql 진입 해봅니다

 

근데 postgres 계정 디렉토리가 /var/lib/postgresql 이라는게 눈에 띄네요

 

설치가 끝났으니 외부접속을 위해

설정파일과 패스워드를 수정해야합니다

 

 

  • 외부접속 설정

sudo vim /etc/postgresql/9.6/mian/postgresql.conf

pi@rasp-dev:~ $ sudo vim /etc/postgresql/9.6/main/postgresql.conf 

 

 49 external_pid_file = '/var/run/postgresql/9.6-main.pid'                  # wr    ite an extra PID file

 50                                         # (change requires restart)

 51 

 52 

 53 #---------------------------------------------------------------------------    ---

 54 # CONNECTIONS AND AUTHENTICATION

 55 #---------------------------------------------------------------------------    ---

 56 

 57 # - Connection Settings -

 58                                     

 59 #listen_addresses = 'localhost'         # what IP address(es) to listen on;

 59 listen_addresses = '*'          # what IP address(es) to listen on;

 60                                         # comma-separated list of addresses;

 61                                         # defaults to 'localhost'; use '*' f    or all

 62                                         # (change requires restart)

 63 port = 5432                             # (change requires restart)

 64 max_connections = 100                   # (change requires restart)

 65 #superuser_reserved_connections = 3     # (change requires restart)

 66 unix_socket_directories = '/var/run/postgresql' # comma-separated list of di    rectories

1 change; before #1  2 seconds ago                            59,1           7%

 

59번 라인이 주석처리 되있는데 풀어주고

localhost를 * 로 변경해줍니다

 

sudo vim /etc/postgresql/9.6/main/pg_hba.conf

pi@rasp-dev:~ $ sudo vim /etc/postgresql/9.6/main/

environment      pg_hba.conf      postgresql.conf  

pg_ctl.conf      pg_ident.conf    start.conf       

pi@rasp-dev:~ $ sudo vim /etc/postgresql/9.6/main/pg_hba.conf 

 

 77 

 78 # DO NOT DISABLE!

 79 # If you change this first entry you will need to make sure that the

 80 # database superuser can access the database using some other method.

 81 # Noninteractive access to all databases is required during automatic

 82 # maintenance (custom daily cronjobs, replication, and similar tasks).

 83 #

 84 # Database administrative login by Unix domain socket

 85 local   all             postgres                                peer

 86 

 87 # TYPE  DATABASE        USER            ADDRESS                 METHOD

 88 

 89 # "local" is for Unix domain socket connections only

 90 local   all             all                                     peer

 91 # IPv4 local connections:

 92 #host   all             all             127.0.0.1/32            md5

 92 host    all             all             0.0.0.0/0               md5

 93 # IPv6 local connections:

 94 host    all             all             ::1/128                 md5

 95 # Allow replication connections from localhost, by a user with the

 96 # replication privilege.

 97 #local   replication     postgres                                peer

 98 #host    replication     postgres        127.0.0.1/32            md5

 99 #host    replication     postgres        ::1/128                 md5

                                                        92,1         바닥

IPv4연결인 92번라인의 127.0.0.1/32 를 0.0.0.0/0 로 변경해줍니다

수정후에 postgresql을 재시작해줍니다

pi@rasp-dev:~ $ sudo service postgresql restart

pi@rasp-dev:~ $ netstat -na | grep 5432

tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN     

tcp6       0      0 :::5432                 :::*                    LISTEN     

unix  2      [ ACC ]     STREAM     LISTENING     52526    /var/run/postgresql/.s.PGSQL.5432

pi@rasp-dev:~ $ 

tcp 0.0.0.0:5432 가 보인다면 성공이긴 한데

 

postgres 계정의 패스워드를 모르니 psql로 패스워드를 변경해줍니다

pi@rasp-dev:~ $ sudo su - postgres 

postgres@rasp-dev:~$ psql

psql (9.6.13)

도움말을 보려면 "help"를 입력하십시오.

 

postgres=# alter user postgres password 'postgres';

ALTER ROLE

postgres=# 

패스워드를 변경했으니 외부 툴을 이용해서 접속테스트 해봐야죠

 

다람쥐 SQL

변경된 패스워드로 다람쥐 SQL로 테스트를 하기 연결되네요

굿굿

 

참고로 다람쥐를 쓰려면 postgresql jdbc가 있어야 하니

pgAdmin 쓰셔도 됩니다

 


관련글

[programing/GIS] - [El Capitan]postGis 외부 접속 허용하기 (mac os x)

[programing/GIS] - PostGIS Database 데이터베이스 생성 및 설정

[programing/GIS] - PostGIS 2.0 Shapefile and DBF Loader Exporter 기능 사용하기 (windows)

[programing/GIS] - PostgreSQL install PostgreSQL 설치 (mac os x)

[programing/GIS] - PostgreSQL install PostgreSQL 설치 (windows)

[programing/GIS] - PostgreSQL install PostgreSQL 설치 (ubuntu & raspbian)

[programing/GIS] - PostGis install PostGIS 설치 (mac os x, homebrew)

[programing/GIS] - PostGIS install PostGIS 설치 (widows)

[programing/GIS] - PostGIS install PostGIS 설치 (ubuntu & raspbian)

[OS/Utils] - 강추)다람쥐 SQL SQuirreL SQL 만능 DB 접속툴

[programing/GIS] - [macOS High Sierra] install PostgreSQL 10.4 포스트그레SQL 10.4 설치 (Postgre.app, PostGIS)

[programing/GIS] - [macOS High Sierra] install PostgreSQL 10.4 포스트그레SQL 10.4 설치 (PostgreSQL, PostGIS, pgJDBC, pgAdmin4)

[programing/GIS] - [macOS High Sierra] install pgAdmin4 v3.1

[embedded/raspberrypi] - Raspberry Pi 라즈베리파이 - PostgreSQL(9.6) 데이터 디렉토리 위치 변경 삽질기(Failed to move Postgres Data directory)

[embedded/raspberrypi] - 039. Raspberry Pi 라즈베리파이 - PostgreSQL(9.6) 재설치

[embedded/raspberrypi] - 041. Raspberry Pi 라즈베리파이 - PostgreSQL(9.6) 데이터 위치 변경 (move to postgresql data directory)


참고

https://www.postgresql.org/docs/9.3/auth-pg-hba-conf.htm

반응형

관련글 더보기

댓글 영역