PostgreSQL Installation on WSL2 and Windows
Page content
개요
- WSL2에서 PostgreSQL을 설치한다.
- pgAdmin은 Windows에 설치한다.
터미널 업그레이드
- 먼저 WSL 터미널을 열고, Ubuntu 패키지를 모두 업데이트 및 업그레이드를 한다.
$ sudo apt update
[sudo] password for evan:
Hit:1 https://artifacts.elastic.co/packages/7.x/apt stable InRelease
Get:2 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Hit:3 http://archive.ubuntu.com/ubuntu focal InRelease
Get:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Get:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB]
Get:6 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [1712 kB]
Get:7 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [916 kB]
Fetched 2963 kB in 5s (600 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.
- 이번에는 업그레이드를 해본다.
$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
PostgreSQL Installation in WSL2
- 이번에는 WSL2에서 PostgreSQL을 설치한다. 설치가 종료되면, 반드시 버전을 확인한다.
$ sudo apt install postgresql postgresql-contrib
$ psql --version
psql (PostgreSQL) 12.9 (Ubuntu 12.9-0ubuntu0.20.04.1)
- 설치 이후에는 Database를 접근가능하도록 활성화해야 한다.
- 포트가 활성화 되어 있지 않다면 아래와 같은 메시지가 나타날 것이다.
$ sudo service postgresql status
12/main (port 5432): down
- 이번에는 활성화를 해보도록 한다. 온라인이라는 메시지가 나타난다면 활성화가 되었다는 것을 의미한다.
$ sudo service postgresql start
* Starting PostgreSQL 12 database server
$ sudo service postgresql status
12/main (port 5432): online
- 이번에는 활성화된 데이터베이스를 종료시킨다.
$ sudo service postgresql stop
* Stopping PostgreSQL 12 database server [ OK ]
$ sudo service postgresql status
12/main (port 5432): down
사용자 계정 Password 설정
- 기본적으로 admin 사용자로 등록이 되어 있다. 보통 DB 초기 세팅 시에는 패스워드를 입력받아야 한다. (예: evan)
$ sudo passwd postgres
New password:
Retype new password:
passwd: password updated successfully
- 여기까지 했다면, WSL2에서 추가로 설정할 것은 더 없다.
pgAdmin Installation on Windows
- 이번에는 pgAdmin을 설치한다. (최신버전 설치, pgAdmin 4 v6.8)웹사이트 : https://www.pgadmin.org/download/pgadmin-4-windows/
- 설치 할 때는 관리자로 실행하며, 아래 그림과 나타난다면, install for all users를 선택한다.
- 설치가 완료된 뒤에는 pgAdmin 이 검색되는지를 확인한다.
- pgAdmin 프로그램을 설치한 뒤에는 WSL2 에서 PostgreSQL 서비스를 활성화 해야 한다.
- 처음 실행 시 나타나는 화면에 나오는 Password는 WSL2에서 설정한 Password를 입력한다.
- 이번에는 서버를 설정하도록 한다.
- General Tab에는 test 라고 입력한다.
- connection tab에는 아래와 같이 입력한다.
- Password는 WSL2에서 입력했던 Password를 입력한다.
- 만약에 아래와 같이 Password 에러가 나면 계정 Password를 변경 또는 재지정해야 한다.
- 다음과 같이 Password를 설정하도록 한다.
- 아래 코드 설정 시, Service가 활성화가 되어 있어야 한다. (
sudo service postgresql start
)
- 아래 코드 설정 시, Service가 활성화가 되어 있어야 한다. (
$ sudo -u postgres psql -c "ALTER USER postgres PASSWORD '<new-password>';"
$ sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"
- 위 설정이 끝난 후, 재 접속하면 정상적으로 접근이 되는 것을 확인할 수 있다.
DB 생성 및 확인
- test 서버에 접속을 했다면, 이제 DB생성을 해본 후, pgAdmin과 WSL2에서 각각 확인을 해보도록 한다.
- 먼저, Database에서 마우스 우클릭 후, 아래와 같이 순차적으로 클릭한다.
- 새로운 데이터베이스명은 dataengineering으로 명명한다.
- 이번에는 아래 그림과 같이 dataengineering 데이터베이스의 노드 중 shemas를 확장하고 다시 public을 확장한다.
- Tables 에서 마우스 우 클릭 후 Create - Table을 순차적으로 선택한다.
- General 탭에서 users 라고 명명한다.
- Column 탭에서는 아래와 같이 테이블 열을 추가한다.
- 이번에는 psql에 접속 후 dataengineering DB와 생성된 테이블을 조회하는 쿼리를 실행한다.
- dataengineering 테이블이 조회되는지 확인한다.
$ sudo -u postgres psql
psql (12.9 (Ubuntu 12.9-0ubuntu0.20.04.1))
Type "help" for help.
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------------+----------+----------+---------+---------+-----------------------
dataengineering | postgres | UTF8 | C.UTF-8 | C.UTF-8 |
postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 |
template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
- 이번에는 기 생성된 dataengineering DB에 연결 후, 테이블을 조회하도록 한다.
postgres=# \c dataengineering
You are now connected to database "dataengineering" as user "postgres".
dataengineering=# \dt
List of relations
Schema | Name | Type | Owner
--------+-------+-------+----------
public | users | table | postgres
(1 row)
참고자료
- Set up PostgreSQL on WSL2 and Access with pgAdmin on Windows, https://chloesun.medium.com/set-up-postgresql-on-wsl2-and-connect-to-postgresql-with-pgadmin-on-windows-ca7f0b7f38ab
- PostgreSQL Show Tables, https://www.postgresqltutorial.com/postgresql-administration/postgresql-show-tables/