การติดตั้ง 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. ให้บริการเขียนซอฟต์แวร์ ติดตั้ง รับเป็นที่ปรึกษา รวมถึงระบบสำรองข้อมูล ด้วยประสบการณ์ยาวนานนับสิบปี

Application Security Report 2024

สำหรับบทความนี้เป็นบทความและเรียบเรียงใหม่จาก Cloudflare Application Security Report 2024 ต้องบอกว่า ในช่วง 12 เดือนที่ผ่านมานั้น...

Read more »

Protect your site against SQL Injection with Cloudflare

ในยุคดิจิทัลที่การทำธุรกิจและการสื่อสารผ่านเว็บไซต์เป็นส่วนสำคัญ การป้องกันภัยทางไซเบอร์จึงกลายเป็นสิ่งที่มีความสำคัญอย่างยิ่ง หนึ่งในภัยคุกคามที่มีการใช้งานมากที่สุดคือ SQL Injection โดยเฉพาะเว็บไซต์ที่สร้างด้วย Wordpress ซึ่งเป็นแพลตฟอร์มที่ได้รับความนิยมมากที่สุดในการสร้างเว็บไซต์และบล็อก การโจมตีด้วย SQL...

Read more »

Installing VMware PowerCLI on Ubuntu 22.04 Jammy

PowerCLI คือชุดเครื่องมือภาษาการโปรแกรมในการจัดการอัตโนมัติ (Automation) ที่พัฒนาโดย VMware สำหรับการบริหารจัดการ VMware vSphere และผลิตภัณฑ์อื่น ๆ...

Read more »

Installing iRedMail on Ubuntu 22.04 Jammy

สำหรับ iRedMail นั้นต้องบอกว่าเป็นระบบ Mail Server บน Linux ที่ดีตัวหนึ่งเลยทีเดียว เพราะว่าฟีเจอร์ครบ เช่น...

Read more »

Upgrading from Ubuntu 20.04 LTS to Ubuntu 22.04 Jammy

แน่นอนว่าการอัพเกรดจะมีประโยชน์อย่างมาก ในการทำให้ระบบของท่านนั้นปลอดภัย งั้นเรามาเริ่มกันเลย สำหรับการอัพเกรด Ubuntu 20.04 ซึ่งออกมานานพอสมควรล่ะ ให้เป็น Ubuntu 22.04...

Read more »

Migrating CentOS 7 to AlmaLinux 9

การอัพเกรดระบบให้ทันสมัยอยู่ตลอดเวลานั้น มีประโยชน์ในหลายๆ เรื่อง โดยเฉพาะอย่างยิ่งเรื่องของการทำให้ระบบนั้นมีความปลอดภัย อย่างที่ทุกคนทราบแล้วว่า CentOS นั้นถูกประกาศว่า End-of-Life ไปแล้ว เพราะฉะนั้นผู้ที่ใช้...

Read more »