Installing PostgreSQL 17 on Ubuntu 24.04

Published on April 26, 2025
Installing PostgreSQL 17 on Ubuntu 24.04

PostgreSQL คือระบบจัดการฐานข้อมูลเชิงสัมพันธ์แบบโอเพนซอร์ส (Open-source Relational Database Management System – RDBMS) ที่ทรงพลังและมีความสามารถสูง พัฒนาต่อเนื่องมากว่า 30 ปี
คุณสมบัติเด่นของ PostgreSQL:
-รองรับ SQL มาตรฐาน (Standard SQL:2008)
-รองรับข้อมูลแบบ JSON, XML, และข้อมูลเชิงพื้นที่ (GIS)
-รองรับฟังก์ชันขั้นสูง เช่น triggers, stored procedures, window functions, CTEs
-ขยายความสามารถได้ เช่น สร้าง data type เอง, เขียนฟังก์ชันด้วยภาษาอื่น (เช่น Python, PL/pgSQL)
-เสถียร ปลอดภัย และเหมาะกับงานระดับองค์กร
-มีระบบ replication, backup, และ clustering

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

1. PostGIS
ฟังก์ชัน: เพิ่มความสามารถในการจัดการข้อมูลเชิงพื้นที่ (Spatial data) เช่น การเก็บข้อมูลแผนที่ พิกัด และการคำนวณระยะห่าง
การใช้งาน: ใช้สำหรับงาน GIS (Geographic Information Systems), การวิเคราะห์แผนที่ หรือแอปพลิเคชันที่ต้องการการคำนวณข้อมูลตำแหน่ง

2. pg_partman
ฟังก์ชัน: ช่วยในการจัดการ partitioning ของตาราง (แบ่งตารางขนาดใหญ่ให้เล็กลงเพื่อเพิ่มประสิทธิภาพ)
การใช้งาน: ใช้เมื่อคุณต้องการแบ่งตารางที่มีข้อมูลจำนวนมากออกเป็นส่วนย่อย (partitions) เพื่อเพิ่มความเร็วในการ query

3. pg_stat_statements
ฟังก์ชัน: เก็บสถิติการใช้ SQL queries ที่มีการรันบ่อย ๆ ช่วยให้คุณสามารถวิเคราะห์ประสิทธิภาพและทำการปรับแต่งฐานข้อมูล
การใช้งาน: ใช้ในการวิเคราะห์ประสิทธิภาพของคำสั่ง SQL ในการทำงาน

4. hstore
ฟังก์ชัน: เพิ่มฟังก์ชันการจัดการข้อมูลในรูปแบบ key-value pairs
การใช้งาน: ใช้ในกรณีที่ต้องการจัดเก็บข้อมูลที่ไม่เป็นระเบียบ (non-relational data) โดยไม่ต้องใช้ฐานข้อมูล NoSQL

5. pg_trgm
ฟังก์ชัน: ช่วยเพิ่มประสิทธิภาพในการค้นหาข้อความโดยใช้ trigram (การแบ่งข้อความออกเป็นชุดของสามตัวอักษร)
การใช้งาน: ใช้ในการค้นหาข้อความที่ไม่ตรงกัน เช่น การค้นหาคำที่คล้ายกันหรือมีตัวสะกดผิด

6. pg_bigm
ฟังก์ชัน: เพิ่มการสนับสนุนการค้นหาคำในรูปแบบ “bigram” (การแบ่งข้อความออกเป็นชุดของสองตัวอักษร)
การใช้งาน: ใช้สำหรับการค้นหาข้อความที่มีความคล้ายคลึงกัน เช่น การค้นหาข้อความที่สะกดผิด หรือค้นหาคำในฟิลด์ขนาดใหญ่

7. Citus
ฟังก์ชัน: เปลี่ยน PostgreSQL ให้สามารถทำงานในรูปแบบ distributed database (ฐานข้อมูลแบบกระจาย)
การใช้งาน: ใช้เมื่อฐานข้อมูลมีข้อมูลจำนวนมากและต้องการขยายขนาดฐานข้อมูลแบบกระจายเพื่อรองรับการประมวลผลที่รวดเร็ว

8. uuid-ossp
ฟังก์ชัน: สร้าง UUIDs (Universally Unique Identifiers) ภายใน PostgreSQL
การใช้งาน: ใช้เมื่อคุณต้องการสร้างค่า unique identifier ที่ไม่ซ้ำกันสำหรับการอ้างอิงข้อมูลในระบบต่าง ๆ

9. pgcrypto
ฟังก์ชัน: เพิ่มฟังก์ชันการเข้ารหัสข้อมูล เช่น การเข้ารหัสและถอดรหัสข้อมูล
การใช้งาน: ใช้สำหรับการเข้ารหัสข้อมูลที่เก็บในฐานข้อมูลเพื่อความปลอดภัย เช่น การเข้ารหัสรหัสผ่านหรือข้อมูลสำคัญ

10. pg_repack
ฟังก์ชัน: ช่วยในการจัดการกับตารางและดัชนีที่มีการพังหรือเต็ม (bloat) โดยการแยกข้อมูลออกมาและจัดเรียงใหม่
การใช้งาน: ใช้เมื่อฐานข้อมูลเริ่มมีขนาดใหญ่และทำให้การ query ช้าลง

โดยรวมแล้วต้องบอกว่า PostgreSQL นั้นเป็นทั้งระบบฐานข้อมูลแบบดั้งเดิมและร่วมสมัยที่ ทำงานได้กับข้อมูลแทบจะทุกตัวแล้วในปัจจุบัน

อธิบายมาตั้งนาน แล้วเข้าเรื่องของเรากันดีกว่า วันนี้เราจะไปติดตั้ง PostgreSQL 17 ซึ่งเป็น version ล่าสุดบน Ubuntu 24.04 (Noble Numbat) ซึ่งเป็นตัวล่าสุดเหมือนกัน ก็ใหม่สุดๆ กันไปเลยนะ

1. เช็คก่อนเลยว่า Ubuntu ที่ใช้อยู่เป็น 24.04 เพื่อความชัวร์ ด้วยคำสั่ง

lsb_release -a

 

เราก็จะได้ผลลัพธ์ดังรูปที่ 1

2. พิมพ์

sudo apt update


เพื่อเป็นการอัพเดท repository index file ใหม่

3. ทำการเพิ่ม repository สำหรับ PostgreSQL 17

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

step 3

4. ทำการ import key ของ repository

curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg

step 4

5. ทำการ update index file ใน repository ตัวใหม่ที่เราเพิ่งเพิ่มเข้าไปใน step 3

sudo apt update

step 5

6. ทำการติดตั้ง PostgreSQL 17

sudo apt install postgresql-17

ให้เราตอบ Y เพื่อยืนยันการติดตั้ง

Step 6

7. พิมพ์คำสั่งเพื่อ start service PostgreSQL และ enable เพื่อให้ทำงานอัตโนมัติหากเครื่องมีการรีบูต

sudo systemctl start postgresql
sudo systemctl enable postgresql

Step 7

8. พิมพ์คำสั่ง เพื่อทำการแก้ไขไฟล์ให้ postgreSQL ทำงานในทุก IP

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

9. ให้เลื่อนมายัง ตรงที่เขียนว่า #listen_addresses = ‘localhost’ และแก้เป็น
listen_addresses = ‘*’

หลังจากแก้ไขไฟล์แล้ว ให้ทำการ บันทึกด้วยคำสั่ง ^X และกด Y เพื่อบันทึกการเปลี่ยนแปลง

Step 8-9

10. พิมพ์คำสั่งเหล่านี้เพื่อเปลี่ยน authentication เป็นชนิด MD5 เพราะมันจำเป็นสำหรับการ authen ผ่าน remote ซึ่งส่วนใหญ่เราต้องใช้อยู่แล้ว เพราะในการ remote มาจัดการ

sudo sed -i '/^host/s/ident/md5/' /etc/postgresql/17/main/pg_hba.conf
sudo sed -i '/^local/s/peer/trust/' /etc/postgresql/17/main/pg_hba.conf
echo "host all all 0.0.0.0/0 md5" | sudo tee -a /etc/postgresql/17/main/pg_hba.conf

Step 10

11. ทำการ restart service postgresql เพื่อให้อ่านค่า config ใหม่ที่เราแก้ไปข้างต้น

sudo systemctl restart postgresql

12. พิมพ์คำสั่งเพื่อเข้าไปยัง postgresql

sudo -u postgres psql

ซึ่งหมายถึง เรากำลังเชื่อมต่อด้วย username ที่ชื่อว่า postgres ซึ่งเทียบเท่ากับ sa ใน SQL Server นั่นเอง

13. หลังจากนั้นทำการเปลี่ยนรหัสของ user : postgres ด้วยคำสั่ง

ALTER USER postgres PASSWORD 'SuperStrongPasswordHere;

14. หลังจากนั้นก็ออกด้วยคำสั่ง

\q

Step 11-14

ก็เป็นอันเรียบร้อยสำหรับการติดตั้ง PostgreSQL 17 บน Ubuntu 24.04 สำหรับผู้ที่ต้องการดูเป็นแบบ Video นั้นรับชมได้ที่ https://www.youtube.com/watch?v=ZKqwBzJB3uw

 

Installing PostgreSQL 17 on Ubuntu 24.04

PostgreSQL คือระบบจัดการฐานข้อมูลเชิงสัมพันธ์แบบโอเพนซอร์ส (Open-source Relational Database Management System – RDBMS) ที่ทรงพลังและมีความสามารถสูง...

Read more »

วิธีการติดตั้ง DatApp-NBP Data Backup System

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

Read more »

วิธีการใช้งาน ซอฟต์แวร์เดสก์ท็อประยะไกล AnyViewer

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

Read more »

Earthquake Risks and Their Impact on Computer Systems

ความเสี่ยงเรื่องการเกิดแผ่นดินไหวและผลกระทบต่อระบบคอมพิวเตอร์ การเกิดแผ่นดินไหวขนาด 7.7 แมกนิจูด ในระดับความลึก 10 กม. จากผิวดิน ที่เมืองมัณฑะเลย์ของประเทศพม่าเมื่อวันที่ 28...

Read more »

Longhorn Block Storage System

ทำความรู้จักกับ Longhorn Storage System Longhorn เป็นระบบจัดการ Block Storage แบบกระจายศูนย์ (Distributed...

Read more »

VM Storage Controller in Proxmox VE

วันนี้เราจะไปทำความเข้าใจเกี่ยวกับ Storage Controller หรือ Disk Controller สำหรับ VM ที่อยู่ใน Proxmox...

Read more »