Tôi đã biên dịch và cài đặt thành công phiên bản PostgreSQL mới nhất (17.4) trên Ubuntu ARM32.
Các lệnh trong bài viết này chủ yếu đến từ tài liệu chính thức của PostgreSQL. Tôi đã thực tế kiểm tra từng lệnh trong bài viết này.
Bạn có thể thấy các hệ thống có thể cài đặt thành công tại đây Nông trại xây dựng PostgreSQL
Biên dịch và cài đặt PostgreSQL 17.4
1. Tạo thư mục và vào thư mục
mkdir postgresql && cd postgresql
mkdir postgresql
: Tạo một thư mục mới có tênpostgresql
.cd postgresql
: Vào thư mụcpostgresql
vừa tạo.
2. Tải xuống mã nguồn PostgreSQL
wget https://ftp.postgresql.org/pub/source/v17.4/postgresql-17.4.tar.bz2
wget
: Tải xuống tệp từ URL được chỉ định.https://..../postgresql-17.4.tar.bz2
: Liên kết tải xuống gói mã nguồn nén của phiên bản PostgreSQL 17.4. Nếu liên kết không hoạt động, bạn có thể tự tìm liên kết mới.
3. Giải nén gói mã nguồn
tar xjf postgresql-17.4.tar.bz2
-
tar
: Được sử dụng để xử lý các tệp nén.tar
. -
xjf
: Các tùy chọn giải nén tệptar
:x
: Giải nén tệp.j
: Sử dụng định dạng nén bzip2 (.bz2).f
: Chỉ định tệp cần giải nén.
-
postgresql-17.4.tar.bz2
: Tên của tệp cần giải nén.
4. Vào thư mục mã nguồn đã giải nén
cd postgresql-17.4
- Vào thư mục mã nguồn PostgreSQL 17.4 đã giải nén.
5. Cài đặt các gói phụ thuộc
sudo apt install libssl-dev libsystemd-dev libxml2-dev libreadline-dev
sudo apt install
: Sử dụng trình quản lý góiapt
để cài đặt các gói.libssl-dev
,libsystemd-dev
,libxml2-dev
,libreadline-dev
: Cài đặt các thư viện phát triển cần thiết để biên dịch PostgreSQL, lần lượt là thư viện SSL, thư viện Systemd, thư viện XML và thư viện Readline.
6. Cấu hình tùy chọn biên dịch
./configure --prefix=/usr/local/pgsql --with-openssl --with-libxml --with-systemd
./configure
: Chuẩn bị môi trường biên dịch của PostgreSQL.--prefix=/usr/local/pgsql
: Chỉ định thư mục cài đặt PostgreSQL là/usr/local/pgsql
.--with-openssl
: Bật hỗ trợ OpenSSL.--with-libxml
: Bật hỗ trợ XML.--with-systemd
: Bật hỗ trợ Systemd.
7. Biên dịch mã nguồn
make -j$(nproc)
make
: Khởi động quá trình biên dịch.-j$(nproc)
: Sử dụngnproc
(số lượng lõi CPU của hệ thống) để thực hiện song song các tác vụ biên dịch, tăng tốc quá trình biên dịch.
8. Cài đặt PostgreSQL
sudo make install
sudo make install
: Sử dụngsudo
để thực hiện cài đặt với quyền quản trị viên,make install
sẽ cài đặt các tệp đã biên dịch vào hệ thống, cài đặt vào thư mục/usr/local/pgsql
được chỉ định trong lệnh./configure
trước đó.
9. Thiết lập biến môi trường
Sử dụng trình soạn thảo văn bản 1. Chỉnh sửa tệp /etc/profile
:
sudo nano /etc/profile
sudo
: Cho biết chạy lệnh với quyền siêu người dùng (quản trị viên). Vì việc sửa đổi tệp/etc/profile
cần quyền quản trị viên.nano
: Đây là một trình soạn thảo văn bản, thường được sử dụng trong môi trường terminal để chỉnh sửa tệp./etc/profile
: Đây là một tệp cấu hình toàn cục, được sử dụng để thiết lập các biến môi trường và cấu hình khởi động trong phạm vi hệ thống. Tất cả người dùng khi đăng nhập vào hệ thống sẽ thực hiện các thiết lập trong tệp này.
- Thêm biến môi trường:
export PATH=/usr/local/pgsql/bin:$PATH
export
: Được sử dụng để thiết lập một biến môi trường, làm cho nó khả dụng trong quá trình hiện tại và các quá trình con.PATH
: Đây là một biến môi trường, chứa danh sách các thư mục chứa các tệp thực thi của hệ thống. Khi thực hiện một lệnh, hệ thống sẽ tìm kiếm lệnh đó dựa trên các thư mục được liệt kê trong biếnPATH
./usr/local/pgsql/bin
: Đây là thư mục chứa các tệp thực thi của cơ sở dữ liệu PostgreSQL, thêm nó vào có nghĩa là các tệp thực thi (chẳng hạn nhưpsql
) trong thư mục này sẽ được hệ thống nhận diện.:$PATH
: Ở đây$PATH
đại diện cho các đường dẫn đã có, thêm đường dẫn mới/usr/local/pgsql/bin
vào trướcPATH
ban đầu. Bằng cách này, hệ thống sẽ kiểm tra thư mục mới trước, sau đó mới kiểm tra các đường dẫn ban đầu.
Tác dụng của lệnh này là thêm thư mục chứa các tệp thực thi của PostgreSQL vào biến môi trường PATH
của hệ thống, đảm bảo rằng các lệnh của PostgreSQL (như psql
) có thể được chạy trực tiếp trong dòng lệnh mà không cần cung cấp đường dẫn đầy đủ. Các thiết lập sau khi sửa đổi sẽ có hiệu lực đối với tất cả người dùng.
Khởi tạo cơ sở dữ liệu PostgreSQL
Các lệnh này chủ yếu được sử dụng để cấu hình thủ công máy chủ cơ sở dữ liệu PostgreSQL trên máy chủ Linux, bao gồm tạo người dùng hệ thống PostgreSQL, khởi tạo cơ sở dữ liệu, khởi động dịch vụ cơ sở dữ liệu và đăng ký nó làm dịch vụ systemd
, để tự động khởi động khi khởi động.
1. Tạo người dùng PostgreSQL
sudo useradd -m -U -r -d /var/lib/postgresql -s /bin/bash postgres
sudo
: Thực hiện lệnh với quyền siêu người dùng.useradd
: Tạo người dùng mới.-m
: Tạo thư mục home cho người dùng.-U
: Đồng thời tạo một nhóm người dùng có cùng tên với tên người dùng.-r
: Tạo một người dùng hệ thống (UID của người dùng hệ thống thấp hơn 1000, không được sử dụng để đăng nhập).-d /var/lib/postgresql
: Chỉ định thư mục home là/var/lib/postgresql
.-s /bin/bash
: Chỉ định shell là/bin/bash
.postgres
: Tên người dùng.
Lệnh này tạo một người dùng hệ thống chuyên dụng cho PostgreSQL là postgres
.
2. Thay đổi chủ sở hữu của thư mục PostgreSQL
sudo chown postgres /usr/local/pgsql
chown postgres /usr/local/pgsql
: Thay đổi chủ sở hữu của thư mục/usr/local/pgsql
thành người dùngpostgres
, cho phép người dùng này đọc và ghi vào thư mục đó.
3. Đặt mật khẩu cho người dùng PostgreSQL
sudo passwd postgres
passwd postgres
: Thay đổi mật khẩu của người dùngpostgres
.
4. Chuyển sang người dùng PostgreSQL
su postgres
su postgres
: Chuyển sang người dùngpostgres
, để sử dụng các lệnh liên quan đến PostgreSQL.
5. Khởi tạo cơ sở dữ liệu
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
initdb -D /usr/local/pgsql/data
: Khởi tạo bộ nhớ cơ sở dữ liệu trong thư mục/usr/local/pgsql/data
.
6. Khởi động cơ sở dữ liệu PostgreSQL
/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
postgres -D /usr/local/pgsql/data
: Khởi động cơ sở dữ liệu với tiến trìnhpostgres
, dữ liệu được lưu trữ trong thư mục/usr/local/pgsql/data
.
7. Trong một phiên terminal khác, vào cơ sở dữ liệu
su postgres
/usr/local/pgsql/bin/psql
psql
: Công cụ tương tác dòng lệnh của PostgreSQL, vào shell cơ sở dữ liệu.
8. Đặt mật khẩu cho người dùng cơ sở dữ liệu
ALTER USER postgres WITH PASSWORD 'your_new_password';
- Sửa đổi mật khẩu của người dùng cơ sở dữ liệu
postgres
.
9. Tạo dịch vụ systemd
sudo nano /etc/systemd/system/postgresql.service
nano /etc/systemd/system/postgresql.service
: Chỉnh sửa tệp cấu hìnhsystemd
, để PostgreSQL có thể chạy như một dịch vụ.
Nội dung tệp cấu hình:
[Unit]
Description=Máy chủ PostgreSQL
#Documentation=man:postgres(1)
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
User=postgres
ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
KillSignal=SIGINT
TimeoutSec=infinity
[Install]
WantedBy=multi-user.target
Description=Máy chủ PostgreSQL
: Mô tả dịch vụ này là máy chủ PostgreSQL.After=network-online.target
: Chờ kết nối mạng khả dụng trước khi khởi động PostgreSQL.User=postgres
: Chạy với người dùngpostgres
.ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
: Khởi động máy chủ PostgreSQL.ExecReload=/bin/kill -HUP $MAINPID
: Gửi tín hiệuHUP
khi tải lại.KillMode=mixed
: Chế độ chấm dứt hỗn hợp.KillSignal=SIGINT
: Tín hiệu để chấm dứt tiến trình PostgreSQL.TimeoutSec=infinity
: Đặt thời gian chờ thành vô hạn.
10. Bật dịch vụ systemd
sudo systemctl daemon-reload
sudo systemctl start postgresql
sudo systemctl status postgresql
sudo systemctl enable postgresql
daemon-reload
: Tải lại cấu hìnhsystemd
, đểpostgresql.service
mới có hiệu lực.start postgresql
: Khởi động dịch vụ PostgreSQL.status postgresql
: Kiểm tra trạng thái hoạt động của PostgreSQL.enable postgresql
: Tự động khởi động PostgreSQL khi khởi động.
Mục đích của các lệnh này là:
- Tạo một người dùng
postgres
chuyên dụng để chạy PostgreSQL. - Khởi tạo thư mục lưu trữ cơ sở dữ liệu.
- Khởi động cơ sở dữ liệu PostgreSQL và vào dòng lệnh tương tác
psql
. - Cấu hình
systemd
để PostgreSQL chạy như một dịch vụ hệ thống và hỗ trợ tự động khởi động khi khởi động.
Bằng cách này, máy chủ PostgreSQL có thể hoạt động bình thường và có thể tự động khởi động khi hệ thống khởi động.
Tài liệu tham khảo
PostgreSQL: Tài liệu: 17: Chương 17. Cài đặt từ mã nguồn
Các phiên bản khác của trang này
Bài viết này có nhiều phiên bản ngôn ngữ.
Nếu bạn muốn đăng bình luận, vui lòng truy cập trang web sau:
Các trang này chỉ hỗ trợ duyệt xem, không thể đăng bình luận hoặc để lại tin nhắn, nhưng cung cấp nhiều tùy chọn ngôn ngữ hơn và thời gian tải ngắn hơn:
ZH EN ZH-TW JA RU KO CS ES AR FR PT DE TR IT NL SV DA FI PL UK HE RO HU EL HR TH HI BN ID SW VI NO
Bài viết này được dịch từ Chinese (Simplified) sang Vietnamese bằng AI.