Android

วิธีการติดตั้ง postgresql บนเดเบียน 10

Como instalar o PostgreSQL no Linux Debian 10

Como instalar o PostgreSQL no Linux Debian 10

สารบัญ:

Anonim

PostgreSQL เป็นที่รู้จักกันง่าย ๆ ว่า Postgres เป็นระบบจัดการฐานข้อมูลเชิงวัตถุ - เชิงสัมพันธ์แบบโอเพ่นซอร์ส มันมีคุณสมบัติที่ทรงพลังมากมายเช่นการสำรองข้อมูลออนไลน์การกู้คืนแบบชี้ตรงเวลาธุรกรรมที่ซ้อนกันการสอบถาม SQL และ JSON การควบคุมพร้อมกันหลายรุ่น (MVCC) การจำลองแบบอะซิงโครนัสและอื่น ๆ

บทช่วยสอนนี้จะแนะนำคุณเกี่ยวกับขั้นตอนการติดตั้งเซิร์ฟเวอร์ฐานข้อมูล PostgreSQL บน Debian 10 นอกจากนี้เราจะสำรวจพื้นฐานของการดูแลฐานข้อมูลพื้นฐาน

การติดตั้ง PostgreSQL

ในขณะที่เขียนบทความนี้ PostgreSQL รุ่นล่าสุดพร้อมใช้งานจากที่เก็บ Debian เริ่มต้นคือ PostgreSQL เวอร์ชัน 11.5

ในการติดตั้ง PostgreSQL บนเซิร์ฟเวอร์ Debian ของคุณให้ทำตามขั้นตอนต่อไปนี้ในฐานะรูทหรือผู้ใช้ที่มีสิทธิ์ sudo:

  1. เริ่มต้นด้วยการอัพเดตดัชนีแพ็คเกจ APT:

    sudo apt update

    ติดตั้งเซิร์ฟเวอร์ PostgreSQL และแพ็คเกจ contrib ซึ่งมีคุณสมบัติเพิ่มเติมสำหรับฐานข้อมูล PostgreSQL:

    sudo apt install postgresql postgresql-contrib

    เมื่อการติดตั้งเสร็จสมบูรณ์บริการ PostgreSQL จะเริ่มขึ้น หากต้องการตรวจสอบการติดตั้งให้ใช้เครื่องมือ psql เพื่อพิมพ์เวอร์ชันเซิร์ฟเวอร์:

    sudo -u postgres psql -c "SELECT version();"

    ผลลัพธ์ควรมีลักษณะดังนี้:

    PostgreSQL 11.5 (Debian 11.5-1+deb10u1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit

psql เป็นโปรแกรมเทอร์มินัลแบบโต้ตอบที่ช่วยให้คุณสามารถโต้ตอบกับเซิร์ฟเวอร์ PostgreSQL

บทบาทของ PostgreSQL และวิธีการรับรองความถูกต้อง

PostgreSQL จัดการสิทธิ์การเข้าถึงฐานข้อมูลโดยใช้แนวคิดของบทบาท ขึ้นอยู่กับวิธีที่คุณตั้งค่าบทบาทสามารถเป็นตัวแทนผู้ใช้ฐานข้อมูลหรือกลุ่มผู้ใช้ฐานข้อมูล

PostgreSQL สนับสนุนวิธีการรับรองความถูกต้องหลายวิธี วิธีที่ใช้บ่อยที่สุดคือ:

  • ความน่าเชื่อถือ - บทบาทสามารถเชื่อมต่อได้โดยไม่ต้องใช้รหัสผ่านตราบใดที่ตรงตามเกณฑ์ที่กำหนดไว้ใน pg_hba.conf รหัสผ่าน - บทบาทสามารถเชื่อมต่อได้โดยระบุรหัสผ่าน รหัสผ่านสามารถจัดเก็บเป็น scram-sha-256 md5 และ password (ข้อความที่ชัดเจน) password ตัว - รองรับเฉพาะการเชื่อมต่อ TCP / IP มันทำงานโดยการได้รับชื่อผู้ใช้ระบบปฏิบัติการของลูกค้าด้วยการทำแผนที่ชื่อผู้ใช้ตัวเลือก - เหมือน Ident แต่รองรับเฉพาะในการเชื่อมต่อท้องถิ่น

การพิสูจน์ตัวตนไคลเอ็นต์ PostgreSQL ถูกกำหนดในไฟล์คอนฟิกูเรชันชื่อ pg_hba.conf สำหรับการเชื่อมต่อท้องถิ่น PostgreSQL ถูกตั้งค่าให้ใช้วิธีการรับรองความถูกต้องแบบเพียร์

ผู้ใช้“ postgres” จะถูกสร้างขึ้นโดยอัตโนมัติเมื่อติดตั้ง PostgreSQL ผู้ใช้นี้เป็น superuser ของอินสแตนซ์ PostgreSQL และเทียบเท่ากับผู้ใช้รูทของ MySQL

ในการเข้าสู่เซิร์ฟเวอร์ PostgreSQL เป็น“ postgres” ให้สลับไปที่ผู้ใช้ postgres และเข้าถึงพรอมต์ PostgreSQL โดยใช้ยูทิลิตี psql :

sudo su - postgres psql

จากตรงนี้คุณสามารถโต้ตอบกับเซิร์ฟเวอร์ PostgreSQL หากต้องการออกจากประเภทเชลล์ PostgreSQL:

\q

คุณสามารถใช้คำสั่ง sudo เพื่อเข้าถึงพรอมต์ PostgreSQL โดยไม่ต้องสลับผู้ใช้:

sudo -u postgres psql

โดยทั่วไปผู้ใช้ postgres จะใช้จาก localhost เท่านั้น

การสร้างบทบาทและฐานข้อมูล PostgreSQL

คำสั่ง createuser อนุญาตให้คุณสร้างบทบาทใหม่จากบรรทัดคำสั่ง เฉพาะผู้ใช้ระดับสูงและบทบาทที่มีสิทธิ์ CREATEROLE สามารถสร้างบทบาทใหม่

ในตัวอย่างต่อไปนี้เราจะสร้างบทบาทใหม่ชื่อ kylo ฐานข้อมูลชื่อ kylodb และให้สิทธิ์บนฐานข้อมูลกับบทบาท

  1. ก่อนอื่นให้สร้างบทบาทโดยการใช้คำสั่งต่อไปนี้:

    sudo su - postgres -c "createuser kylo"

    จากนั้นสร้างฐานข้อมูลโดยใช้คำสั่ง createdb :

    sudo su - postgres -c "createdb kylodb"

    หากต้องการให้สิทธิ์แก่ผู้ใช้ในฐานข้อมูลให้เชื่อมต่อกับเชลล์ PostgreSQL:

    sudo -u postgres psql

    เรียกใช้แบบสอบถามต่อไปนี้:

    grant all privileges on database kylodb to kylo;

เปิดใช้งานการเข้าถึงระยะไกลไปยังเซิร์ฟเวอร์ PostgreSQL

ตามค่าเริ่มต้น PostgreSQL เซิร์ฟเวอร์จะฟังเฉพาะที่บนโลคัลอินเตอร์เฟส 127.0.0.1

เปิดไฟล์คอนฟิกูเรชัน postgresql.conf และเพิ่ม listen_addresses = '*' ในส่วน CONNECTIONS AND AUTHENTICATION สิ่งนี้สั่งให้เซิร์ฟเวอร์ฟังในเน็ตเวิร์กอินเตอร์เฟสทั้งหมด

sudo nano /etc/postgresql/11/main/postgresql.conf /etc/postgresql/11/main/postgresql.conf

#------------------------------------------------------------------------------ # CONNECTIONS AND AUTHENTICATION #------------------------------------------------------------------------------ # - Connection Settings - listen_addresses = '*' # what IP address(es) to listen on;

บันทึกไฟล์และรีสตาร์ทเซอร์วิส PostgreSQL เพื่อให้การเปลี่ยนแปลงมีผล:

sudo service postgresql restart

ตรวจสอบการเปลี่ยนแปลงด้วยยูทิลิตี้ ss :

ss -nlt | grep 5432

LISTEN 0 128 0.0.0.0:5432 0.0.0.0:* LISTEN 0 128:5432:*

ผลลัพธ์ควรแสดงว่าเซิร์ฟเวอร์ PostgreSQL ฟังอินเตอร์เฟสทั้งหมด (0.0.0.0)

ขั้นตอนสุดท้ายคือการกำหนดค่าเซิร์ฟเวอร์ให้ยอมรับการลงชื่อเข้าใช้จากระยะไกลโดยแก้ไขไฟล์ pg_hba.conf

ด้านล่างนี้คือตัวอย่างบางส่วนที่แสดงกรณีการใช้ที่แตกต่างกัน:

/etc/postgresql/11/main/pg_hba.conf

# TYPE DATABASE USER ADDRESS METHOD # The user jane will be able to access all databases from all locations using an md5 password host all jane 0.0.0.0/0 md5 # The user jane will be able to access only the janedb from all locations using an md5 password host janedb jane 0.0.0.0/0 md5 # The user jane will be able to access all databases from a trusted location (192.168.1.134) without a password host all jane 192.168.1.134 trust

ข้อสรุป

เราได้แสดงวิธีการติดตั้งและกำหนดค่า PostgreSQL บน Debian 10 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับหัวข้อนี้ให้อ่านเอกสารของ PostgreSQL

ฐานข้อมูล debian postgresql