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

Hyper-V vs Proxmox VE เปรียบเทียบทุกมุมมอง

ทุกวันนี้ virtualization ได้กลายเป็นกระดูกสันหลังของทุกองค์กรไปแล้ว ด้วยคุณสมบัติของมันที่จะช่วยให้คุณใช้ทรัพยากรได้อย่างมีประสิทธิภาพที่สุด และ ให้ความอิสระในแง่ของการใช้งานและการบริหารระบบ หากพูดถึงเรื่องการเลือก Hypervisor คุณอาจจะเคยได้ยินคนพูดถึงการเปรียบเทียบระหว่าง Hyper-V...

Read more »

ข้อดีของการย้ายจาก VMware ไปสู่ Hyper-V สำหรับองค์กรที่ใช้ Windows เป็นหลัก

สำหรับผู้ที่กำลังมองหาทางเลือกด้าน Virtualization และ ภายในองค์กรนั้นทำงานด้วยสภาพแวดล้อมที่เป็น Windows เสียเป็นส่วนใหญ่แล้ว การย้ายหรือ Migrate VM จาก...

Read more »

ชุปชีวิต App เก่าของท่าน ด้วยพลังการ reverse-engineering ของ AI

Rebuild the Application by Reverse Engineering the Existing System แน่นอนว่าธุรกิจทุกรูปแบบได้ทำงานบนระบบคอมพิวเตอร์มาหลายสิบปี...

Read more »

Migrate VMware virtual machines to Hyper-V in WAC

Windows Admin Center หรือ WAC นั้นเป็นเครื่องมือในการบริหาร Windows Server ที่เข้ามาแทน Microsoft...

Read more »

Understanding UUID

UUID นั้นต้องเรียกได้ว่ามีข้อถกเถียงกันมานานมา ในการใช้ในการเขียนโปรแกรมและการออกแบบดาต้าเบส วันนี้เราจะไปศึกษาว่ามันคืออะไร และ ในการออกแบบฐานข้อมูลมันเข้ามามีบทบาทอย่างไร UUID คืออะไร UUID ย่อมาจาก...

Read more »

วันสิ้นสุด License Perpetual ของ VMware มาถึงแล้ว รีบย้ายไป Proxmox VE กันเถอะ

ตอนที่ VMware ประกาศว่าจะออก ESXi 9 มานั้น ทุกคนในวงการก็คิดว่า มันน่าจะมาพร้อมการอัพเดทบางส่วนเหมือนทุกๆ ครั้งที่ผ่านมาเช่น การเพิ่มการสนับสนุนฮาร์ดแวร์...

Read more »