วิธีการติดตั้ง PostgreSQL โดยใช้ซอร์สโค้ดใน Linux
PostgreSQL ซึ่งเป็นระบบจัดการฐานข้อมูลเชิงสัมพันธ์แบบโอเพ่นซอร์ส มีชื่อเสียงอย่างกว้างขวางในด้านคุณลักษณะที่แข็งแกร่งและความสามารถในการขยายได้ แม้ว่าลีนุกซ์หลายรุ่นจะให้บริการ PostgreSQL ผ่านทางตัวจัดการแพ็คเกจ แต่การติดตั้งจากซอร์สทำให้สามารถปรับแต่งและควบคุมได้ดียิ่งขึ้น
ในบทความนี้ เราจะอธิบายวิธีการติดตั้ง PostgreSQL 16 โดยใช้การติดตั้งซอร์สโค้ดบนระบบ Linux
สำหรับผู้ที่มองหาวิธีการติดตั้งที่ง่ายกว่าจากตัวจัดการแพ็คเกจการแจกจ่าย โปรดปฏิบัติตามคำแนะนำด้านล่าง:
ข้อกำหนดเบื้องต้น
ก่อนที่จะเข้าสู่กระบวนการติดตั้ง PostgreSQL โปรดตรวจสอบให้แน่ใจว่าระบบของคุณมีคุณสมบัติตรงตามข้อกำหนดเบื้องต้นต่อไปนี้:
- การเผยแพร่ Linux (ในคู่มือนี้ เราจะใช้ Debian เพื่อวัตถุประสงค์ในการสาธิต)
- ระบบ Linux ที่มีผู้ใช้ที่ไม่ใช่รูทพร้อมสิทธิ์ sudo
- ติดตั้งเครื่องมือการพัฒนาที่จำเป็น เช่น GCC และ Make แล้ว
1. ติดตั้งข้อกำหนดเบื้องต้นบน Linux
ขั้นแรก ติดตั้งเครื่องมือการพัฒนาที่จำเป็น เช่น GCC และ Make โดยใช้ตัวจัดการแพ็คเกจการแจกจ่ายตามที่แสดง
บนการกระจายแบบอิง RHEL เช่น CentOS, Fedora, Rocky Linux และ Alma Linux:
sudo yum groupinstall development-tools
sudo yum install zlib-devel readline-devel libicu-devel
บนการกระจายแบบเดเบียน เช่น Ubuntu และ Linux Mint
sudo apt install gcc build-essential zlib1g-dev libreadline6-dev libicu-dev pkg-config
2. ดาวน์โหลดซอร์สโค้ด PostgreSQL
เมื่อติดตั้งข้อกำหนดเบื้องต้นที่จำเป็นแล้ว ให้ดาวน์โหลดไฟล์ tar ของซอร์สโค้ดจากเว็บไซต์ postgres อย่างเป็นทางการโดยใช้คำสั่ง wget ต่อไปนี้บนระบบโดยตรง ในระหว่างที่เขียนบทความนี้ เวอร์ชันล่าสุดคือ PostgreSQL 16.1
wget https://ftp.postgresql.org/pub/source/v16.1/postgresql-16.1.tar.bz2
จากนั้นใช้คำสั่ง tar เพื่อแตกไฟล์ tarball ที่ดาวน์โหลดมา ไดเร็กทอรีใหม่ชื่อ postgresql-16.1 จะถูกสร้างขึ้น
tar -xvf postgresql-16.1.tar.bz2
cd postgresql-16.1/
ls -l
ผลลัพธ์ตัวอย่าง:
-rw-r--r--. 1 tecmint tecmint 365 Nov 7 03:34 aclocal.m4
drwxr-xr-x. 2 tecmint tecmint 4096 Nov 7 03:47 config
-rwxr-xr-x. 1 tecmint tecmint 584560 Nov 7 03:34 configure
-rw-r--r--. 1 tecmint tecmint 87292 Nov 7 03:34 configure.ac
drwxr-xr-x. 61 tecmint tecmint 4096 Nov 7 03:47 contrib
-rw-r--r--. 1 tecmint tecmint 1192 Nov 7 03:34 COPYRIGHT
drwxr-xr-x. 3 tecmint tecmint 4096 Nov 7 03:47 doc
-rw-r--r--. 1 tecmint tecmint 4288 Nov 7 03:34 GNUmakefile.in
-rw-r--r--. 1 tecmint tecmint 277 Nov 7 03:34 HISTORY
-rw-r--r--. 1 tecmint tecmint 64601 Nov 7 03:48 INSTALL
-rw-r--r--. 1 tecmint tecmint 1875 Nov 7 03:34 Makefile
-rw-r--r--. 1 tecmint tecmint 102017 Nov 7 03:47 meson.build
-rw-r--r--. 1 tecmint tecmint 6266 Nov 7 03:34 meson_options.txt
-rw-r--r--. 1 tecmint tecmint 1213 Nov 7 03:34 README
drwxr-xr-x. 16 tecmint tecmint 4096 Nov 7 03:48 src
3. กำหนดค่า PostgreSQL จากแหล่งที่มา
เนื่องจาก postgres เป็นฐานข้อมูลโอเพ่นซอร์ส จึงสามารถสร้างจากซอร์สโค้ดได้ตามความต้องการ/ข้อกำหนด เราปรับแต่งกระบวนการสร้างและการติดตั้งได้โดยระบุตัวเลือกบรรทัดคำสั่งอย่างน้อย 1 รายการสำหรับคุณลักษณะเพิ่มเติมต่างๆ
ใช้คำสั่งต่อไปนี้เพื่อขอความช่วยเหลือเกี่ยวกับตัวเลือกและการใช้งานการกำหนดค่าต่างๆ ดังที่แสดง
./configure --help
ตอนนี้ให้รันสคริปต์กำหนดค่าซึ่งจะตรวจสอบระบบของคุณสำหรับการขึ้นต่อกันและกำหนดค่าบิลด์ตามนั้น
./configure
4. ติดตั้ง PostgreSQL จากแหล่งที่มา
เมื่อกำหนดค่าแล้ว ให้ใช้คำสั่งต่อไปนี้เพื่อสร้างและติดตั้ง PostgreSQL จากต้นทาง
make
sudo make install
5. การสร้างผู้ใช้ Postgres
ตอนนี้สร้างผู้ใช้และไดเร็กทอรี postgres เพื่อใช้เป็นไดเร็กทอรี data สำหรับการเริ่มต้นคลัสเตอร์ฐานข้อมูล เจ้าของไดเรกทอรี ข้อมูล นี้ควรเป็นผู้ใช้ postgres และการอนุญาตควรเป็น 700 และกำหนดเส้นทางสำหรับไบนารี postgresql เพื่อความสะดวกของเรา
sudo useradd postgres
sudo passwd postgres
sudo mkdir -p /pgdatabase/data
sudo chown -R postgres: /pgdatabase/data
sudo sh -c "echo 'export PATH=$PATH:/opt/PostgreSQL/bin' > /etc/profile.d/postgres.sh"
source /etc/profile.d/postgres.sh
6. การเริ่มต้นฐานข้อมูล Postgres
ตอนนี้เตรียมใช้งานฐานข้อมูลโดยใช้คำสั่งต่อไปนี้ในฐานะผู้ใช้ postgres ก่อนที่จะใช้คำสั่ง postgres ใดๆ
su postgres
initdb -D /pgdatabase/data/ -U postgres -W
โดยที่ -D
คือที่ตั้งสำหรับคลัสเตอร์ฐานข้อมูลนี้ หรือเราสามารถพูดได้ว่าเป็นไดเร็กทอรีข้อมูลที่เราต้องการเริ่มต้นคลัสเตอร์ฐานข้อมูล -U
สำหรับชื่อ superuser ฐานข้อมูลและ < รหัส>-W เพื่อขอรหัสผ่านสำหรับ db superuser
สำหรับข้อมูลเพิ่มเติมและตัวเลือกต่างๆ สามารถดูได้ที่ initdb --help
7. เริ่มบริการ PostgreSQL
หลังจากเตรียมใช้งานฐานข้อมูลแล้ว ให้เริ่มคลัสเตอร์ฐานข้อมูล หรือหากคุณต้องการเปลี่ยนพอร์ตหรือฟังที่อยู่ของเซิร์ฟเวอร์ ให้แก้ไขไฟล์ /pgdatabase/data/postgresql.conf ในไดเร็กทอรีข้อมูลของ เซิร์ฟเวอร์ฐานข้อมูล
nano /pgdatabase/data/postgresql.conf
ตอนนี้ ให้เริ่มบริการ PostgreSQL
pg_ctl -D /pgdatabase/data/ start
หลังจากเริ่มต้นฐานข้อมูล ให้ตรวจสอบสถานะของกระบวนการเซิร์ฟเวอร์ postgres โดยใช้คำสั่ง ps และ netstat ต่อไปนี้
ps -ef |grep -i postgres
netstat -apn |grep -i 51751
เราจะเห็นว่าคลัสเตอร์ฐานข้อมูลทำงานได้ดี และบันทึกการเริ่มต้นระบบสามารถพบได้ในตำแหน่งที่ระบุด้วยตัวเลือก -l
ในขณะที่เริ่มต้นคลัสเตอร์ฐานข้อมูล
pg_ctl -D /pgdatabase/data/ -l logfile start
8. เชื่อมต่อกับ PostgreSQL
ตอนนี้เชื่อมต่อกับคลัสเตอร์ฐานข้อมูลและสร้างฐานข้อมูลโดยใช้คำสั่งต่อไปนี้
psql -p 5432
postgres=# create database test;
postgres=# \l to list all databases in cluster
postgres=# \q to quit form postgres console
หากคุณกำลังมองหาเครื่องมือกราฟิกชื่อ pgAdmin เพื่อจัดการ PostgreSQL ของคุณ ให้ทำตามคำแนะนำเหล่านี้เพื่อติดตั้ง pgAdmin บน Linux ของคุณ
บทสรุป
คุณติดตั้ง PostgreSQL จากแหล่งที่มาบนระบบ Linux ของคุณสำเร็จแล้ว กระบวนการนี้ให้ความยืดหยุ่นและการควบคุมการติดตั้ง PostgreSQL ของคุณ ทำให้คุณสามารถปรับแต่งให้ตรงกับความต้องการเฉพาะของคุณได้