การติดตั้ง PostgreSQL บน Ubuntu Linux 22.04

Published on February 27, 2023
การติดตั้ง PostgreSQL บน Ubuntu Linux 22.04

การติดตั้ง PostgreSQL บน Ubuntu Linux 22.04

 

PostgreSQL นั้นเป็น opensource database (DBMS) ที่ใช้ภาษี SQL หรือชื่อเต็ม ๆ ก็คือ structured Query Language ในการจัดการเก็บและเข้าถึงข้อมูล นอกจากนั้นแล้วด้วยความที่มันเป็น object relational database ด้วย ทำให้ PostgreSQL สนับสนุนการใช้งาน complex data types และมีคุณสมบัติชั้นสูงที่ซับซ้อน เช่น การเก็บ object inheritance และการสนับสนุน JSON query ซึ่งคุณสมบัติชั้นสูงที่กล่าวไป ก็เพียงพอที่จะทำให้ PostgreSQL นั้นได้รับการงานอย่างกว้างขวางในองค์กรขนาดใหญ่เพิ่มขึ้นเรื่อยๆ

นอกจากนั้นตัวมันยังสามารถนำไปติดตั้งบนระบบปฏิบัติการหลายตัว ทั้ง Windows, Linux, MacOS และภาษาที่เชื่อมต่อนั้น ก็มี library สำหรับหลายภาษาการโปรแกรมเช่น Java, Python, Perl, Ruby, Go, C, C# และอีกมาก

PostgreSQL นั้นมีการพัฒนามาต่อเนื่องกว่า 20 ปี ซึ่งในช่วงแรกแน่นอนว่า จะถูกนำไปใช้ในการเก็บข้อมูลบน web, mobile, analytical และ geospatial หรือแอฟที่เกี่ยวกับภูมิศาตร์ และ การนำทาง (GIS) ซึ่ง PostgreSQL นั้นมี extension ที่เรียกว่า PostGIS ที่ช่วยให้การประมวลผลตำแหน่งทางภูมิศาสตร์ มีประสิทธิภาพมากขึ้นพร้อมทั้งลดการทำงานของ CPU & RAM ลงได้

ก็เรียกได้ว่าเป็น DBMS ที่น่าสนใจมาก ๆ ตัวหนึ่งเลยทีเดียว งั้นเราก็มาทดสอบการติดตั้งบน Ubuntu 22.04 กันเลย

1. Update system

สำหรับการอัพเดท package list นั้นทำได้ง่ายๆ ด้วยคำสั่ง

 

sudo apt update

 

2. ทำการติดตั้ง PostgreSQL โดยการใช้คำสั่ง

sudo apt install postgresql postgresql-contrib -y

 

install postgresql

รูปที่ 1 แสดงการพิมพ์คำสั่งเพื่อติดตั้ง postgresql

ทั้งนี้ท่านสามารถทำการเช็คว่า postgresql ที่ติดตั้งไปนั้นเป็น version อะไรโดยการพิมพ์คำสั่ง

psql -V

install postgresql
รูปที่ 2 แสดงผลลัพธ์ของการพิมพ์คำสั่ง psql -V ที่แสดงว่า version ของ PostgreSQL คือ 14.6 บนระบบปฏิบัติการ Ubuntu 22.04.1

3. เช็คสถานะของ PostgreSQL ว่าทำงานรันอยู่หรือไม่

sudo systemctl status postgresql

install postgresql

รูปที่ 3 แสดงผลลัพธ์ของการเช็คว่า service postgresql ทำงานอยู่หรือไม่ ซึ่งคำว่า active สีเขียวแสดงว่าทำงานอยู่

หรือเพื่อความชัวร์อีกครั้งหนึ่ง เราสามารถเช็คได้ว่า postgresql นั้นทำการ listening tcp หรือว่ารอการเชื่อมต่อ ถูกต้องหรือไม่ โดย postgresql นั้นทำงานที่ port 5432 ซึ่งเราสามารถเช็คได้โดยการพิมพ์คำสั่ง

 

ss -pnltue | grep 5432

install postgresql

รูปที่ 4 แสดงการทำงานของ postgresql ที่ port 5432 ถูกต้อง และกำลัง listening อยู่เพื่อรอการเชื่อมต่อ

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

 

sudo su – postgres

หลังจากนั้นก็พิมพ์คำสั่ง

psql

install postgresql

รูปที่ 5 แสดงการเข้าถึง postgresql shell ซึ่งท่านจะเห็นว่า cursor ของระบบนั้นเปลี่ยนไปแล้ว เป็น postgres=#

 

คราวนี้ท่านสามารถทำการทดลอง list database ที่มีอยู่ในระบบทั้งหมดขึ้นมาดู โดยทั้งนี้ PostgreSQL นั้นจะมี database ติดตั้ง มาให้โดยอัตโนมัติ 3 ตัว คือ postgres , template0, template1 ซึ่งคำสั่งที่ท่านต้องการพิมพ์คือ

\l

install postgresql
รูปที่ 6 แสดง database ทั้งหมด

5. การสร้าง database และ ชื่อผู้ใช้งาน
สำหรับการสร้าง database การสร้าง user และ การให้สิทธิ์ในการใช้งาน database กับ user ที่เราต้องการนั้น จะมีความคล้ายกับ DBMS ตัวอื่นๆ ในท้องตลาด โดยขอพิมพ์ คำสั่งทั้งหมดพร้อมกันดังนี้

CREATE DATABASE mydb1;
CREATE USER sara WITH ENCRYPTED PASSWORD ‘mynewpassword’;
GRANT ALL PRIVILEGES ON DATABASE mydb1 TO sara

จากตัวอย่าง เราจะเห็นได้ว่า บรรทัดแรกคือการสร้าง database ที่ชื่อ mydb1 หลังจากนั้นสร้างชื่อผู้ใช้งานในระบบที่ชื่อ sara และ รหัสของ sara คือ mynewpassword และบรรทัดสุดท้ายคือการให้สิทธิ์กับ sara เข้าถึง mydb1

6. การอนุญาติให้มีการเชื่อมต่อจากภายนอก
สำหรับค่าปริยายที่เราได้ติดตั้ง PostgreSQL นั้น จะเป็นการรับการเชื่อมต่อภายใน host เดียวกันเท่านั้น หรือ เราอาจจะเรียกอีกอย่างหนึ่งว่า binding localhost only ซึ่งในความจริง หรือการใช้งานจริงนั้น เราจะต้องอนุญาตให้มีการเชื่อมต่อจาก client จากเครื่องอื่นๆ ด้วย นั่นหมายถึงเราจะต้องทำการ แก้ไขไฟล์ configuration นิดหน่อย เพื่อแก้การ binding บน interface อื่นๆ นอกเหนือจาก localhost (127.0.0.1) เราทำได้โดยการพิมพ์คำสั่ง

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

หลังจากนั้นมองหาคำว่า listen_addresses และแก้จาก 127.0.0.1 เป็น * และทำการเอาเครื่องหมายสี่เหลี่ยมด้านหน้าออก

install postgresql

รูปที่ 7 การแก้ binding ให้รับการเชื่อมต่อจากทุก interface ในเครื่อง

หลังจากนั้น ท่านก็ทำการพิมพ์คำสั่ง

sudo systemctl restart postgresql

 

ก็เป็นอันเสร็จสิ้น สำหรับการติดตั้ง PostgreSQL บน Ubuntu 22.04

แล้วพบกับ บทความใหม่ๆ จาก AVESTA ได้ในอนาคต

AVESTA CO., LTD. ให้บริการเขียนซอฟต์แวร์ ติดตั้ง รับเป็นที่ปรึกษา รวมถึงระบบสำรองข้อมูล ด้วยประสบการณ์ยาวนานนับสิบปี

SAN is out SDS is in

วันนี้เราจะไปพาไปพบกับ คำถามที่ช่วงนี้ต้องบอกว่า พบเจอบ่อยมากๆ นั่นคือ การที่หลายๆ คนใช้งาน Storage Area Network หรือที่เรียกสั้นๆ...

Read more »

ข้อดีของการมีระบบจองที่พักหรือโรงแรมเป็นของตัวเอง

ประเทศไทยนั้นถือว่าจุดหมายปลายทางระดับโลกของนักท่องเที่ยว ที่มีแต่จะมากขึ้นทุกๆ ปีด้วยความโดดเด่นของไทยเองที่มีอยู่หลายด้าน เช่น อาหาร แหล่งท่องเที่ยว และ ความเป็นมิตรของผู้คน นั่นคือหนึ่งในสาเหตุของ การเพิ่มขึ้นของสถานประกอบการประเภทที่พัก...

Read more »

ระบบฐานข้อมูล และ การใช้งานประจำปี 2025

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

Read more »

Virtual Tape Library คืออะไรและมีประโยชน์อย่างไร

สำหรับ Tape Backup นั้นหลายๆ คนคงจะรู้จัก และใช้งานกันมานานพอสมควร แม้กระทั่งทุกวันนี้หลายๆ องค์กรก็ยังใช้งาน Tape อยู่...

Read more »

ทดสอบ IOPS ด้วย KDiskMark

หากพูดถึง CrystalDiskMark ก็ต้องบอกว่าเป็นที่รู้จักกันในโลกของ Windows กันมา พอสมควรแล้ว เพราะถูกใช้กันอย่างกว้างขวางในการทดสอบ IOPS บน Disk/SSD...

Read more »

GraphQL คืออะไร และ มันอาจจะเป็นสิ่งที่มาเปลี่ยน REST API

GraphQL คืออะไร ก่อนอื่นต้องบอกก่อน วิธีการสื่อสารระหว่าง client & server นั้นเราใช้วิธีการที่เรียกว่า REST API...

Read more »