Ubuntu 다중 채널 VM에 PostgreSQL 설치

나는 최근에 dev컴퓨터의 가상 컴퓨터에 PostgreSQL을 설치했다.이 게시물은 내가 무엇을 했는지 설명한다.
  • VM 설치
  • PostgreSQL 설치
  • 호스트를 통해pgAdmin PostgreSQL 액세스
  • PostgreSQL
  • 에 예시 데이터베이스 설치
    Ubuntu multipass를 사용하여 가상 시스템을 만들기로 결정했습니다.나는 이전에 써 본 적이 없다. 이것은 시도할 기회이다.Multipass에서는 명령줄에서 vm 인스턴스를 시작할 수 있습니다.나는 installation docs 쉽게 이해할 수 있다는 것을 발견했고 몇 분 후에 Ubuntu 가상 컴퓨터가 하나 생겼다.

    다중 경로 설치
    나는 맥 컴퓨터 한 대를 가지고 있기 때문에 멀티패스brew를 설치하거나 직접 설치할 수 있는 몇 가지 옵션이 있다.brew를 통해 설치하도록 선택했습니다.
    $ brew install --cask multipass
    
    내 설치에 대한 주의 사항:
  • 나는 가상 기기 모니터링 프로그램에 기본적인hyperkit 드라이버를 사용했다.
  • 다중 경로는hyperkit로 기본값입니다.하지만 VirtualBox를 가상 시스템 모니터로 설정할 수 있습니다.
  • 터미널 애플리케이션을 iTermthese instructions으로 설정
  • 설치 프로세스가 끝난 후 multipass가 설치되어 있는지 확인했습니다.
    $ multipass version
    multipass   1.8.1+mac
    multipassd  1.8.1+mac
    

    가상 머신 생성launch 명령은 새 vm를 만드는 데 사용됩니다.이름을 제공하거나 여러 경로로 이름을 만들 수 있습니다.나는 --name 인자를 사용하여 이름db 서버를 제공하기를 선택했다.
    $ multipass launch --name db-server
    
    vm에 액세스하는 방법에는
  • 인스턴스
  • 에서 케이스 열기
  • 명령을 사용하여 직접 명령을 실행합니다.
  • 케이스를 열기로 했습니다.
    $ multipass shell db-server
    
    셸에는 가상 시스템의 IP 주소를 포함한 통계 정보가 표시됩니다.나중에 데이터베이스에 연결할 때 필요한 IP 주소를 적어 두십시오.

    PostgreSQL 설치
    나는 the instructions on the PostgreSQL Ubuntu page를 사용하여 최신 버전을 설치했다.다음 명령은 이 페이지에서 복사됩니다.다음 작업은 exec 케이스 내에서 수행됩니다.
    # Create the file repository configuration:
    sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
    
    # Import the repository signing key:
    wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
    
    # Update the package lists:
    sudo apt-get update
    
    # Install the latest version of PostgreSQL.
    # If you want a specific version, use 'postgresql-12' or similar instead of 'postgresql':
    sudo apt-get -y install postgresql
    
    PostgreSQL을 설치하면 Ubuntu 가상 시스템에 db-server 계정이 생성됩니다.psql에 액세스하려면 로그인합니다.
    ubuntu@db-server:$ sudo su - postgres
    
    postgres@db-server:~$ psql
    
    에서는 다음을 보여 줍니다.
    psql (14.2 (Ubuntu 14.2-1.pgdg20.04+1))
    Type "help" for help.
    
    postgres=#
    
    postgres 사용자는 비밀번호가 없습니다.postgres 명령을 사용하여 다음을 설정할 수 있습니다.
    psql (14.2 (Ubuntu 14.2-1.pgdg20.04+1))
    Type "help" for help.
    
    postgres=# \password
    Enter new password for user "postgres":
    
    postgres를 종료하려면 \password 명령을 사용하십시오

    데이터베이스 액세스 설정
    PostgreSQL은 가상 시스템에 설치되어 있지만 아직 호스트(macOS)에서 액세스하지 않았습니다.PostgreSQL 구성 파일을 수정해야 합니다.이러한 파일은 \q 디렉토리에 있습니다.내 예에서 파일은 /etc/postgresql/{version}/main/에 있다.
    경고: PostgreSQL을 설정하는 보안 방법은 다음과 같습니다.PostgreSQL 보안 설정에 대한 자세한 내용은 PostgreSQL documentation를 참조하십시오.
    참고: 수정 작업 중에 /etc/postgresql/14/main/ 사용자로 로그인했습니다.

    postgresql.형태.
    이 파일에는 기본 저장 위치와 메모리 분배 등의 설정이 포함되어 있습니다.PostgreSQL에서 수신할 IP 주소도 구성합니다.
    이 행을 찾습니다.
    #listen_addresses = 'localhost'         # what IP address(es) to listen on;
                                            # comma-separated list of addresses;
                                            # defaults to 'localhost'; use '*' for all
    
    행에 대한 주석을 취소하고 localhost를 "*"로 변경하려면 삭제postgres
    listen_addresses = '*'              # what IP address(es) to listen on;
                                            # comma-separated list of addresses;
                                            # defaults to 'localhost'; use '*' for all
    

    pg_hba.형태.
    이 파일은 보안을 관리합니다.사용자 인증, 데이터베이스 액세스 및 연결을 허용하는 IP 주소를 제어합니다.참가 양식은 다음과 같습니다.
    CONNECTION_TYPE     DATABASE    USER    ADDRESS     METHOD
    
    파일에 다음 행을 추가합니다.
    host    all             all             samenet                 md5
    
    호스트가 서버와 동일한 서브넷에 있는 경우 위 행에서 모든 데이터베이스와 사용자가 TCP/IP 연결을 허용합니다.연결 방식은 "md5"입니다.
  • 호스트 - 접속 유형입니다.호스트는 TCP/IP 소켓(암호화 또는 비암호화)을 나타냅니다.
  • 모두-첫 번째#는 연결을 허용하는 데이터베이스입니다.이런 상황에서 모든 데이터베이스는 연결될 수 있다.
  • 두 번째all는 연결 가능한 사용자입니다.이 경우 모든 사용자가 연결할 수 있습니다.
  • samenet-접속이 가능한 호스트 주소입니다.all를 사용하여 서버가 있는 서브넷의 모든 주소를 연결할 수 있음을 나타냅니다.
  • md5-사용md5 authentication.
  • 변경 사항을 적용하려면 PostgreSQL을 다시 시작해야 합니다.종료samenet 사용자가 복귀postgres 사용자를 반환하고 PostgreSQL을 다시 시작합니다.
    sudo systemctl restart postgresql.service
    # check that PostgreSQL is ready after the restart
    sudo pg_isready
    

    pgAdmin
    pgAdmin 내 호스트(MacOS)에 설치됩니다.Ubuntu 가상 머신에 설치된 PostgreSQL에 연결하는 데 사용하려고 합니다.서버 추가 마법사를 사용하여 데이터베이스에 연결하고 다음 정보를 제공합니다
  • 일반 -> 이름:db 서버 (원하는 것일 수도 있지만)
  • 접속 -> 호스트 이름/주소: 192.168.64.3(내 Ubuntu 가상 시스템의 IP 주소)
  • 연결 -> 포트: 5432(기본 PostgreSQL 포트)
  • 연결-> 유지보수 데이터베이스:postgres
  • 연결-> 사용자 이름:postgres

  • 샘플 데이터베이스 설치
    다음에, 나는 시계와 데이터를 사용하고 싶기 때문에 예시 데이터베이스를 설치했다.구글 검색은 많은 선택을 제공했다.나는 northwind sample database for psql을 선택했다.

    역할 작성
    우선,northwind db에 사용할 캐릭터를 만들었습니다.나는'db 서버'메뉴 옵션을 오른쪽 단추로 클릭하고'창설-> 로그인/그룹 캐릭터...'를 선택하여 새 캐릭터를 만들었습니다.pgAdmin documentation 모든 필드에 대한 세부 정보가 들어 있습니다.요컨대 나는 다음과 같은 일을 했다.
  • 개요->이름: 북쪽
  • 정의 -> 암호: 대외비 암호
  • 권한 -> 로그인 가능: 예
  • 특권 -> 수퍼유저: 아니오
  • 권한 -> 역할 만들기: 아니오
  • 권한 -> 데이터베이스 만들기: 예
  • 권한 -> 상위 역할로부터 권한 상속: 예
  • 권한 -> 스트리밍 및 백업을 시작할 수 있음: 아니오
  • sql 탭에 표시된 sql은 다음과 같습니다.
    CREATE ROLE north WITH
        LOGIN
        NOSUPERUSER
        CREATEDB
        NOCREATEROLE
        INHERIT
        NOREPLICATION
        CONNECTION LIMIT -1
        PASSWORD 'xxxxxx';
    COMMENT ON ROLE north IS 'The user for the northwind database';
    
    저장 버튼을 클릭하면 북쪽 역할이 만들어집니다.

    데이터베이스 만들기
    나는 "db 서버"메뉴 옵션을 오른쪽 단추로 클릭하고 "창설->데이터베이스..."를 선택하여 데이터베이스를 만들었다.pgAdmin documentation는 데이터베이스를 만드는 방법을 상세하게 소개했다.나는 다음과 같은 몇 가지 일을 했다.
  • 개요-> 데이터베이스: 북풍
  • 개요-> 소유자: 북부
  • 정의-> 인코딩: UTF8(예제 데이터베이스에 사용되는 인코딩)
  • 정의 -> 템플릿: 템플릿 1
  • 정의->표 공간:pg 기본값
  • 정의 -> 정렬 규칙: C.UTF-8
  • 정의 -> 문자 유형: C.UTF-8
  • 정의 -> 접속 제한: -1
  • sql 탭에 표시되는 sql은 다음과 같습니다.
    CREATE DATABASE northwind
        WITH 
        OWNER = north
        TEMPLATE = template1
        ENCODING = 'UTF8'
        LC_COLLATE = 'C.UTF-8'
        LC_CTYPE = 'C.UTF-8'
        TABLESPACE = pg_default
        CONNECTION LIMIT = -1;
    
    COMMENT ON DATABASE northwind
        IS 'Sample database';
    

    데이터베이스 로드
    Query Tool를 열고 db 서버->Databases->northwind로 내려가서 오른쪽 단추를 누르고Query Tool을 선택하십시오.postgres 사용자로 로그인했기 때문에, 내가 실행하는 모든 SQL은 이 계정을 사용할 것입니다.노스 계좌를 바꾸고 싶습니다.질의 도구 편집기에서 연결 드롭다운 목록을 클릭하여 사용자를 변경할 수 있습니다.
    ubuntu 사용자로 연결한 후 연결 정보는 north이어야 한다.
    다음으로, Northwind 샘플 데이터베이스를 GitHub에서 내 호스트(MacOS)로 다운로드합니다.
    $ curl https://raw.githubusercontent.com/pthom/northwind_psql/master/northwind.sql -o northwind.sql
    
    그리고 pgadmin의 검색 도구를 사용해서 이 테이블들을 불러왔습니다.내가 사용하는 단계는 다음과 같습니다.
  • 파일 열기
  • 북풍을 선택한다.방금 다운로드한 sql 파일
  • 편집기
  • 에 파일의 내용을 표시합니다
  • 실행/실행
  • 을 클릭합니다.
  • 를 마우스 오른쪽 버튼으로 클릭하고 새로 고침을 선택합니다.
  • 데이터베이스 -> 북풍 -> 모드 -> 공공 -> 표를 아래로 검색하면 14개의 표가 표시됩니다.
    이 테이블은 게스트 컴퓨터(Ubuntu)에서도 볼 수 있습니다.postgres 사용자로서northwind 데이터베이스에 로그인하여 northwind/north@db-server 명령 목록표를 사용합니다.
    postgres@db-server:~$ psql northwind
    psql (14.2 (Ubuntu 14.2-1.pgdg20.04+1))
    Type "help" for help.
    
    northwind=# \dt         
    

    가상 머신 중지/시작
    Ubuntu 가상 머신을 닫으려면 다음 명령을 사용합니다.
    $ multipass stop db-server
    
    서버를 재부팅하려면 다음 명령을 사용합니다.
    $ multipass start db-server
    

    결론
    나는 지금 PostgreSQL을 실행하는 가상 머신이 하나 있다!

    좋은 웹페이지 즐겨찾기