ค้นหาเว็บไซต์

วิธีการติดตั้งและใช้ PostgreSQL บน Ubuntu 18.04


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

มีประสิทธิภาพ เชื่อถือได้ และปรับขนาดได้สำหรับการจัดการข้อมูลปริมาณมากที่ซับซ้อน และการตั้งค่าสภาพแวดล้อมระดับองค์กรและทนต่อข้อผิดพลาด ขณะเดียวกันก็รับประกันความสมบูรณ์ของข้อมูลในระดับสูง นอกจากนี้ Postgres ยังสามารถขยายได้สูงด้วยฟีเจอร์ต่างๆ เช่น ดัชนีที่มาพร้อมกับ API เพื่อให้คุณสามารถพัฒนาโซลูชันของคุณเองเพื่อแก้ปัญหาความท้าทายในการจัดเก็บข้อมูลของคุณ

ในบทความนี้ เราจะอธิบายวิธีการติดตั้ง PostgreSQL บนเซิร์ฟเวอร์ Ubuntu 18.04 (ใช้ได้กับ Ubuntu รุ่นเก่าด้วย) และเรียนรู้วิธีการใช้งานเบื้องต้น

วิธีการติดตั้ง PostgreSQL บน Ubuntu

ขั้นแรก สร้างไฟล์ /etc/apt/sources.list.d/pgdg.list ซึ่งจัดเก็บการกำหนดค่าพื้นที่เก็บข้อมูล จากนั้นนำเข้าคีย์ของพื้นที่เก็บข้อมูลไปยังระบบของคุณ อัปเดตรายการแพ็คเกจระบบของคุณ และติดตั้งแพ็คเกจ Postgres โดยใช้คำสั่งต่อไปนี้

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
sudo apt install wget ca-certificates
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
sudo apt install postgresql-10 pgadmin4 

เมื่อติดตั้ง postgres แล้ว บริการฐานข้อมูลจะเริ่มทำงานโดยอัตโนมัติ และคุณสามารถยืนยันได้โดยพิมพ์คำสั่งต่อไปนี้

sudo systemctl status postgresql.service

วิธีใช้บทบาทและฐานข้อมูล PostgreSQL

ใน postgres การตรวจสอบสิทธิ์ไคลเอ็นต์จะถูกควบคุมโดยไฟล์การกำหนดค่า /etc/postgresql/10/main/pg_hba.conf วิธีการตรวจสอบความถูกต้องเริ่มต้นคือ “เพียร์ ” สำหรับผู้ดูแลระบบฐานข้อมูล ซึ่งหมายความว่าจะได้รับชื่อผู้ใช้ระบบปฏิบัติการของลูกค้าจากระบบปฏิบัติการ และตรวจสอบว่าตรงกับชื่อผู้ใช้ฐานข้อมูลที่ร้องขอเพื่ออนุญาตการเข้าถึง สำหรับการเชื่อมต่อภายในเครื่องหรือไม่ (ตามที่แสดงในภาพหน้าจอต่อไปนี้)

ในระหว่างขั้นตอนการติดตั้ง บัญชีผู้ใช้ระบบชื่อ postgres ถูกสร้างขึ้นโดยไม่ต้องใช้รหัสผ่าน ซึ่งเป็นชื่อผู้ใช้ของผู้ดูแลระบบฐานข้อมูลเริ่มต้นด้วย

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

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

บทบาทเริ่มต้นก็คือ postgres ที่สำคัญ บทบาทฐานข้อมูลไม่ได้เชื่อมต่อกับผู้ใช้ระบบปฏิบัติการโดยสิ้นเชิงในเชิงแนวคิด แต่ในทางปฏิบัติแล้ว บทบาทของฐานข้อมูลอาจไม่แยกจากกัน (เช่น เมื่อพูดถึงการรับรองความถูกต้องของไคลเอ็นต์)

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

หากต้องการกำหนดค่าบทบาทอื่นๆ ให้ใช้รหัสผ่านที่เข้ารหัสเพื่อจัดการฐานข้อมูลที่ได้รับมอบหมาย นอกเหนือจากบทบาท postgres เริ่มต้น คุณจะต้องเปลี่ยนบรรทัดเป็น

Then restart the postgresql service to apply the recent changes.
sudo systemctl restart postgresql

วิธีใช้ PostgreSQL บน Ubuntu

เมื่อตั้งค่าทุกอย่างแล้ว คุณสามารถเข้าถึงบัญชีระบบ postgres ได้ด้วยคำสั่งต่อไปนี้ โดยที่แฟล็ก -i บอกให้ sudo รันเชลล์ที่ระบุโดยรายการฐานข้อมูลรหัสผ่านของผู้ใช้เป้าหมายเป็น เปลือกเข้าสู่ระบบ

sudo -i -u postgres 
psql		#to launch the postgres shell program  
postgres=#

หากต้องการเข้าถึงเชลล์ postgres โดยตรงโดยไม่ต้องเข้าถึงบัญชีผู้ใช้ postgres ก่อน ให้รันคำสั่งต่อไปนี้

sudo -i -u postgres psql

คุณสามารถออก/ออกจาก postgres ได้โดยพิมพ์คำสั่งต่อไปนี้

postgres=# \q

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

สร้างบทบาทผู้ใช้ใหม่โดยใช้คำสั่งต่อไปนี้

postgres=# CREATE ROLE tecmint;

หากต้องการสร้างบทบาทด้วยแอตทริบิวต์ LOGIN ให้ใช้คำสั่งต่อไปนี้ (บทบาทที่มีคุณลักษณะ LOGIN ถือได้ว่าเหมือนกับผู้ใช้ฐานข้อมูล)

postgres=#CREATE ROLE tecmint LOGIN;
OR
postgres=#CREATE USER name;	#assumes login function by default

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

postgres=#CREATE ROLE tecmint PASSWORD 'passwd_here'

แสดงรายการบทบาทฐานข้อมูล PostgreSQL ที่มีอยู่

หากต้องการแสดงรายการบทบาทของผู้ใช้ที่มีอยู่ ให้ใช้คำสั่งเหล่านี้

postgres=# \du 				#shows actual users
OR
postgres=# SELECT rolname FROM pg_roles;

ยกเลิกบทบาทฐานข้อมูล PostgreSQL

หากต้องการละทิ้งบทบาทของผู้ใช้ที่มีอยู่ ให้ใช้คำสั่ง DROP ROLE ตามที่แสดง

postgres=# DROP ROLE tecmint;

สร้างฐานข้อมูล PostgreSQL

เมื่อคุณสร้างบทบาทด้วยชื่อเฉพาะ (เช่น ผู้ใช้ tecmint) คุณสามารถสร้างฐานข้อมูล (ด้วยชื่อเดียวกับบทบาท) ซึ่งจะถูกจัดการโดยบทบาทนั้นดังที่แสดง

postgres=# CREATE DATABASE tecmint;

ในตอนนี้ ในการจัดการฐานข้อมูล tecmint ให้เข้าถึงเชลล์ postgres ในฐานะบทบาท tecmint โดยระบุรหัสผ่านของคุณดังนี้

sudo -i -u tecmint psql

สร้างตาราง PostgreSQL

การสร้างตารางนั้นง่ายมาก เราจะสร้างตารางทดสอบชื่อ ผู้เขียน ซึ่งเก็บข้อมูลเกี่ยวกับผู้เขียน TecMint.com ดังที่แสดง

tecmint=>CREATE TABLE authors (
    code      char(5) NOT NULL,
    name    varchar(40) NOT NULL,
    city varchar(40) NOT NULL
    joined_on date NOT NULL,	
    PRIMARY KEY (code)
);

หลังจากสร้างตารางแล้ว ให้ลองเติมข้อมูลบางส่วนดังต่อไปนี้

tecmint=> INSERT INTO authors VALUES(1,'Ravi Saive','Mumbai','2012-08-15');

หากต้องการดูข้อมูลที่จัดเก็บไว้ในตาราง คุณสามารถเรียกใช้คำสั่ง SELECT

tecmint=> SELECT * FROM authors;

แสดงรายการตารางฐานข้อมูล PostgreSQL

คุณสามารถแสดงรายการตารางทั้งหมดในฐานข้อมูลปัจจุบันด้วยคำสั่งต่อไปนี้

tecmint=>\dt

ลบ/วางตาราง PostgreSQL

หากต้องการลบตารางในฐานข้อมูลปัจจุบัน ให้ใช้คำสั่ง DROP

tecmint=> DROP TABLE authors;

แสดงรายการฐานข้อมูล PostgreSQL ทั้งหมด

หากต้องการแสดงรายการฐานข้อมูลทั้งหมด ให้ใช้คำสั่งต่อไปนี้

tecmint=>SELECT datname FROM pg_database;
OR
tecmint=>\list	#shows a detailed description 
OR
tecmint=>\l

ลบ/วางฐานข้อมูล PostgreSQL

หากคุณต้องการลบฐานข้อมูล ให้ใช้คำสั่ง DROP เป็นต้น

tecmint=>DROP DATABASE tecmint;

เปลี่ยนไปใช้ฐานข้อมูล PostgreSQL อื่น

คุณยังสามารถสลับจากฐานข้อมูลหนึ่งไปยังอีกฐานข้อมูลหนึ่งได้อย่างง่ายดายโดยใช้คำสั่งต่อไปนี้

tecmint=>\connect database_name

สำหรับข้อมูลเพิ่มเติม โปรดดูเอกสารประกอบ PostgreSQL 10.4

แค่นั้นแหละ! ในบทความนี้ เราได้อธิบายวิธีการติดตั้งและใช้ระบบจัดการฐานข้อมูล PostgreSQL บน Ubuntu 18.04 คุณสามารถส่งคำถามหรือความคิดของคุณถึงเราในความคิดเห็น