จะติดตั้ง PostgreSQL บน Ubuntu, CentOS และ Windows ได้อย่างไร?
เผยแพร่แล้ว: 2021-06-08PostgreSQL เป็นหนึ่งในระบบฐานข้อมูลเชิงสัมพันธ์แบบโอเพ่นซอร์สที่ได้รับความนิยมข้ามแพลตฟอร์มซึ่งมีความแข็งแกร่ง มีประสิทธิภาพสูง และเชื่อถือได้พร้อมชุมชนที่แข็งแกร่ง
มีขึ้นตั้งแต่ปี 1986 โดยเป็นส่วนหนึ่งของโครงการ POSTGRES ที่มหาวิทยาลัยแคลิฟอร์เนีย เบิร์กลีย์ และดำเนินการพัฒนาอย่างต่อเนื่องเป็นเวลา 30 ปีบนแพลตฟอร์มหลัก ประสิทธิภาพที่สม่ำเสมอตลอดหลายปีที่ผ่านมาได้พิสูจน์ความสมบูรณ์ สถาปัตยกรรม และความสามารถในการขยายสำหรับการใช้งานในองค์กร เป็นไปตามข้อกำหนดของ ACID และให้การสนับสนุนสำหรับส่วนเสริมที่ทรงพลัง เช่น ตัวขยายฐานข้อมูลเชิงพื้นที่ PostGIS ยอดนิยม
เราจะกล่าวถึงการติดตั้ง PostgreSQL บนแพลตฟอร์มทั่วไปในบทความนี้
มาเริ่มกันเลยดีกว่า
อูบุนตู
PostgreSQL ใช้ได้กับ Ubuntu ทุกรสชาติและทุกเวอร์ชัน คุณมีทางเลือกในการติดตั้งและใช้เวอร์ชันที่พร้อมใช้งานโดยค่าเริ่มต้นกับเวอร์ชัน Ubuntu ของคุณและรองรับตลอดอายุการใช้งาน หรือใช้เวอร์ชันเฉพาะโดยเพิ่มที่เก็บ PostgreSQL และติดตั้งแบบเดียวกัน เราจะครอบคลุมทั้งสองตัวเลือกที่นี่
หากต้องการใช้เวอร์ชันเริ่มต้นที่ได้รับการสนับสนุนโดยที่เก็บของ Ubuntu ให้เรียกใช้:
$ sudo apt-get update $ sudo apt-get -y install postgresql PostgreSQL Apt Repository รองรับ Ubuntu รุ่น LTS ปัจจุบัน เช่น 20.04 , 18.04 และ 16.04 แม้ว่าอาจไม่ได้รับการสนับสนุนอย่างสมบูรณ์ แต่แพ็คเกจเดียวกันก็ใช้งานได้กับเวอร์ชันที่ไม่ใช่ LTS เช่นกันโดยใช้เวอร์ชัน LTS ที่ใกล้เคียงที่สุด
ในการใช้ PostgreSQL apt repository ให้ทำตามขั้นตอนเหล่านี้:
$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' $ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - $ sudo apt-get update $ sudo apt-get -y install postgresql ในการติดตั้งเวอร์ชันเฉพาะจากที่เก็บ PostgreSQL แทนที่จะใช้แค่ postgresql ซึ่งอ้างถึงเวอร์ชันล่าสุด ให้ระบุเช่น postgresql-12 :
$ sudo apt-get -y install postgresql-12ที่เก็บข้อมูลยังมีแพ็คเกจต่าง ๆ รวมถึงส่วนเสริมของบุคคลที่สาม ตัวอย่างเช่น แพ็คเกจที่พร้อมใช้งานทั่วไปสำหรับ PostgreSQL เวอร์ชัน 12 ประกอบด้วย:
| postgresql-client-12 | ไลบรารีไคลเอ็นต์และไบนารีไคลเอ็นต์ |
|---|---|
| postgresql-12 | เซิร์ฟเวอร์ฐานข้อมูลหลัก |
| postgresql-contrib-9.x | โมดูลที่ให้มาเพิ่มเติม (ส่วนหนึ่งของแพ็คเกจ postgresql-xx ในเวอร์ชัน 10 และใหม่กว่า) |
| libpq-dev | ไลบรารีและส่วนหัวสำหรับการพัฒนาส่วนหน้าของภาษา C |
| postgresql-server-dev-12 | ไลบรารีและส่วนหัวสำหรับการพัฒนาแบ็กเอนด์ภาษา C |
| pgadmin4 | pgAdmin 4 ยูทิลิตี้การดูแลระบบกราฟิก |
เมื่อการติดตั้งเสร็จสิ้น คุณสามารถตรวจสอบสถานะของบริการ DB ได้โดยใช้คำสั่งด้านล่าง:
$ sudo systemctl status postgresql.serviceสำหรับ Ubuntu หลังการติดตั้ง บริการควรเปิดใช้งานและทำงานดังนี้:
$ sudo systemctl status postgresql.service ● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Sun 2021-06-06 16:06:45 UTC; 46s ago Main PID: 3364 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 1113) Memory: 0B CGroup: /system.slice/postgresql.service Jun 06 16:06:45 ubuntu20cloud systemd[1]: Starting PostgreSQL RDBMS... Jun 06 16:06:45 ubuntu20cloud systemd[1]: Finished PostgreSQL RDBMS. $CentOS
เช่นเดียวกับ Ubuntu ที่เก็บ RHEL/CentOS ยังมี PostgreSQL เวอร์ชันเฉพาะ ซึ่งได้รับการสนับสนุนตลอดอายุการใช้งานสำหรับระบบปฏิบัติการ คุณสามารถติดตั้งได้โดยใช้:
$ sudo yum install -y postgresql-serverหรือคุณสามารถใช้ DNF หากใช้ CentOS 8
$ sudo dnf install -y postgresql-serverเรียกใช้คำสั่งด้านล่างหลังการติดตั้งเพื่อเริ่มต้น DB เปิดใช้งานบริการ PostgreSQL และเริ่มใช้งาน:
$ sudo postgresql-setup initdb $ sudo systemctl enable postgresql.service $ sudo systemctl start postgresql.serviceหรือหากต้องการใช้แพ็คเกจโดยตรงจากที่ เก็บ PostgreSQL yum เราต้องเพิ่มที่เก็บเป็น:
$ sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpmจากนั้นหากต้องการติดตั้ง PostgreSQL เวอร์ชันเฉพาะเช่นเวอร์ชัน 13 ซึ่งเป็นเวอร์ชันเสถียรล่าสุดในขณะที่เขียนบทความนี้ ให้ใช้:
$ sudo yum install -y postgresql13-serverที่เก็บ yum ยังมีแพ็คเกจเพิ่มเติมสำหรับ PostgreSQL ซึ่งมีรายการสำคัญอยู่ด้านล่าง:
| postgresql-ไคลเอนต์ | ไลบรารีและไบนารีไคลเอ็นต์ |
|---|---|
| postgresql-เซิร์ฟเวอร์ | เซิร์ฟเวอร์ฐานข้อมูลหลัก |
| postgresql-contrib | โมดูลที่ให้มาเพิ่มเติม |
| postgresql-devel | ห้องสมุดและส่วนหัวสำหรับการพัฒนาภาษา C |
เรียกใช้ขั้นตอนด้านล่างหลังการติดตั้งเพื่อเริ่มต้น DB เปิดใช้งานบริการ PostgreSQL และเริ่มต้น:
$ sudo /usr/pgsql-13/bin/postgresql-13-setup initdb $ sudo systemctl enable postgresql-13 $ sudo systemctl start postgresql-13คุณสามารถตรวจสอบสถานะของบริการ DB ได้โดยใช้คำสั่งด้านล่าง:
$ sudo systemctl status postgresql.service ● postgresql.service - PostgreSQL database server Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2021-06-06 16:39:35 GMT; 1min 12s ago Process: 7011 ExecStart=/usr/bin/pg_ctl start -D ${PGDATA} -s -o -p ${PGPORT} -w -t 300 (code=exited, status=0/SUCCESS) Process: 7005 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS) CGroup: /system.slice/postgresql.service ├─7014 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432 ├─7015 postgres: logger process ├─7017 postgres: checkpointer process ├─7018 postgres: writer process ├─7019 postgres: wal writer process ├─7020 postgres: autovacuum launcher process └─7021 postgres: stats collector process Jun 06 16:39:34 centos7cloud systemd[1]: Starting PostgreSQL database server... Jun 06 16:39:35 centos7cloud systemd[1]: Started PostgreSQL database server. $Windows
โปรแกรมติดตั้ง Windows รุ่น 32 บิตและ 64 บิตมีให้จากเว็บไซต์ PostgreSQL อย่างเป็นทางการที่นี่
- คุณสามารถดาวน์โหลดไบนารีที่เกี่ยวข้องตามเวอร์ชันและสถาปัตยกรรมที่ต้องการ


- เราจะดาวน์โหลดเวอร์ชันล่าสุดที่มีให้ ซึ่งก็คือ v13.3 สำหรับแพลตฟอร์ม Windows 64 บิต เมื่อการดาวน์โหลดเสร็จสิ้น ให้เปิดโปรแกรมติดตั้งโดยดับเบิลคลิกที่มัน

- คลิกถัดไปเพื่อดำเนินการต่อ

- คลิก ถัดไป เพื่อดำเนินการต่อด้วยพาธเริ่มต้น หรือระบุพาธการติดตั้งแบบกำหนดเองของคุณ

- คุณสามารถเก็บส่วนประกอบเริ่มต้นที่เลือกไว้และคลิกถัดไปเพื่อดำเนินการต่อ

- ถัดไปจะขอตำแหน่งไดเร็กทอรีข้อมูล ค่านี้สามารถเก็บไว้เป็นค่าเริ่มต้นได้ เว้นแต่คุณจะกำหนดดิสก์หรือไดเร็กทอรีเฉพาะแยกต่างหาก คลิกถัดไปเพื่อดำเนินการต่อ

- ระบุรหัสผ่านที่รัดกุมที่จะกำหนดให้กับผู้ใช้
postgresคลิกถัดไปเมื่อเสร็จสิ้น

- พอร์ตเริ่มต้น
5432น่าจะดีสำหรับกรณีส่วนใหญ่ คลิกถัดไปเพื่อไปยังหน้าถัดไป

- เลือกโลแคลสำหรับ DB และคลิก ถัดไป เพื่อดำเนินการต่อ

- การตั้งค่าที่เลือกทั้งหมดสำหรับวิซาร์ดการติดตั้งจะแสดงรายการเพื่อให้คุณตรวจสอบและยืนยัน หากจำเป็นต้องเปลี่ยนแปลงอะไร ให้กลับไปเปลี่ยนสิ่งเดิมหรือคลิก ถัดไป เพื่อไปยังหน้าถัดไป

- การติดตั้งจะแสดงว่าพร้อมที่จะดำเนินการติดตั้งต่อ เมื่อพร้อมแล้ว ให้คลิก ถัดไป เพื่อเริ่มการติดตั้ง

- รอให้การติดตั้งเสร็จสิ้น การยืนยันจะปรากฏขึ้นเช่นเดียวกัน

- เมื่อเสร็จแล้ว คุณสามารถยกเลิกการเลือก
Stack Builderและคลิก Finish เพื่อออกจากวิซาร์ดการติดตั้ง คลิกที่ Start Menu และค้นหาSQL Shell (psql)และคลิกที่ไอคอนเพื่อเปิดpsqlshell

-
SQL Shell (psql)เปิดขึ้นซึ่งคุณสามารถโต้ตอบกับอินสแตนซ์ PostgreSQL ของคุณหลังจากระบุรายละเอียดการเชื่อมต่อ คุณสามารถเลือกรายการทั้งหมดเป็นค่าเริ่มต้นได้โดยกดEnterยกเว้นรหัสผ่าน ซึ่งคุณต้องป้อนรหัสผ่านที่ระบุสำหรับผู้ใช้postgresระหว่างวิซาร์ดการติดตั้ง สิ่งนี้จะนำคุณไปสู่postgres=#prompt

เชื่อมต่อกับ PostgreSQL
ผู้ใช้ postgres จะถูกสร้างขึ้นโดยอัตโนมัติหลังการติดตั้ง ซึ่งมีสิทธิ์เข้าถึง superadmin ระบบระดับสูงในอินสแตนซ์ DB บน Linux ในฐานะผู้ใช้ที่มีสิทธิพิเศษ คุณสามารถเปลี่ยนไปใช้บัญชีนี้ได้ดังนี้:
$ sudo su - postgres เมื่อเข้ามาแล้ว เราสามารถรีเซ็ตรหัสผ่านผู้ใช้ postgres เป็น:
$ psql -c "alter user postgres with password '[email protected]'" จากนั้นเปิดพรอมต์ PostgreSQL ด้วย psql เป็น:
$ psqlสิ่งนี้จะนำคุณเข้าสู่พรอมต์ PostgreSQL:
$ psql psql (12.7 (Ubuntu 12.7-0ubuntu0.20.04.1)) Type "help" for help. postgres=#ที่พรอมต์นี้ คุณสามารถโต้ตอบกับฐานข้อมูลและทำงานของผู้ดูแลระบบฐานข้อมูลหรือผู้ใช้ ในการสาธิต ขั้นตอนด้านล่างสร้างฐานข้อมูลและผู้ใช้ จากนั้นกำหนดสิทธิ์ให้กับผู้ใช้ใหม่เพื่อทำงานกับฐานข้อมูลใหม่:
postgres=# CREATE DATABASE geekflaredb; CREATE DATABASE postgres=# CREATE USER geekuser WITH ENCRYPTED PASSWORD '[email protected]'; CREATE ROLE postgres=# GRANT ALL PRIVILEGES ON DATABASE geekflaredb to geekuser; GRANT postgres=# จากนั้นเราสามารถแสดงรายการฐานข้อมูลโดยใช้คำสั่ง \l :
postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -------------+----------+----------+---------+---------+----------------------- geekflaredb | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =Tc/postgres + | | | | | postgres=CTc/postgres+ | | | | | geekuser=CTc/postgres postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 | template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (4 rows) postgres=#ตอนนี้คุณสามารถเชื่อมต่อกับฐานข้อมูลโดยใช้:
postgres=# \c geekflaredb You are now connected to database "geekflaredb" as user "postgres". geekflaredb=#สรุป
PostgreSQL เป็นหนึ่งในฐานข้อมูลที่นำไปใช้กันอย่างแพร่หลายในโลกขององค์กร เนื่องจากมีความคงทน ชุดคุณลักษณะ และความสามารถในการปรับขนาด ง่ายต่อการเรียนรู้และพยายามเข้ากันได้กับมาตรฐาน SQL
มีบทช่วยสอนสำหรับ PostgreSQL บนเว็บไซต์ทางการ
