PostgreSQL (hầu hết mọi người gọi là Postgres) là một hệ thống quản lý cơ sở dữ liệu quan hệ đối tượng (ORDBMS) tiên tiến. Postgres là một máy chủ cơ sở dữ liệu nguồn mở với hơn 18 năm phát triển tích cực khiến Postgres trở thành lựa chọn tốt nhất cho các ứng dụng cấp doanh nghiệp.
Postgresql là nền tảng chéo và chạy trên nhiều hệ điều hành như Linux, OSX, Windows và họ BSD. Đây là lựa chọn đúng đắn khi bạn có một ứng dụng có khối lượng công việc cơ sở dữ liệu lớn. Postgres đã được nhiều tổ chức lớn sử dụng bao gồm Yahoo, Instagram và Disqus. Postgres cũng được cung cấp dưới dạng phần mềm dưới dạng dịch vụ (SaaS) bởi ví dụ. Heroku và AWS (Amazon Web Services).
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt Postgres trên máy chủ của riêng bạn với OpenSUSE Leap làm hệ điều hành. Sau đó, tôi sẽ cài đặt phpPgAdmin để chúng ta có thể quản lý cơ sở dữ liệu Postgres của mình từ trình duyệt web.
Điều kiện tiên quyết
Cài đặt PostgreSQL bằng zypper:
Khởi động postgresql bằng systemctl:
Chúng ta hãy thực hiện bước đầu tiên để cấu hình cơ sở dữ liệu postgresql bằng cách đăng nhập vào người dùng postgres từ thiết bị đầu cuối:
Bây giờ chúng ta sẽ sử dụng lệnh psql. psql là giao diện dòng lệnh cho PostgreSQL, chúng ta có thể trực tiếp thực thi các truy vấn PostgreSQL từ giao diện này.
Từ shell psql, chúng ta có thể thay đổi mật khẩu của người dùng "postgres" bằng lệnh "password" bên dưới:
Nhập mật khẩu mới cho người dùng postgres.
Để tạo một người dùng mới, chúng ta phải đăng nhập với tư cách là người dùng postgres, sau đó tạo một vai trò và cơ sở dữ liệu mới bằng lệnh bên dưới:
Lưu ý:
-s tùy chọn được sử dụng để cấp cho người dùng mới các đặc quyền siêu người dùng.
nano là tên người dùng mới.
nano_db là tên cơ sở dữ liệu mới.
Bây giờ hãy đăng nhập vào shell psql postgresql và cấp cho vai trò mới của chúng ta một mật khẩu và cấp quyền truy cập cơ sở dữ liệu.
Tôi sẽ sử dụng mật khẩu 'aqwe123@' cho người dùng nano tại đây và cấp các đặc quyền cho cơ sở dữ liệu nano_db.
Người dùng này sẽ được sử dụng để đăng nhập vào postgresql từ giao diện phpPgAdmin dựa trên web vì chúng ta không nên cho phép bất kỳ người dùng mặc định hoặc người dùng nào không có mật khẩu đăng nhập vào postgresql từ phpPgAdmin.
Đi tới thư mục postgresql "/var/lib/pgsql/" và chỉnh sửa tệp cấu hình chính "postgresql.conf" bằng trình soạn thảo yêu thích của bạn:
Bỏ chú thích dòng 59 và thay đổi giá trị từ localhost thành "*".
Bỏ chú thích dòng 63 để cấu hình cổng mặc định.
Lưu tệp và thoát khỏi trình soạn thảo.
Để cho phép truy cập từ ứng dụng web phpPgAdmin vào cơ sở dữ liệu PostgreSQL, chúng ta cần chỉnh sửa tệp pg_hba.conf và thay đổi một số thiết lập cấu hình.
Sử dụng vim để chỉnh sửa tệp "pg_hba.conf":
Cuối dòng, hãy thay đổi cấu hình để xác thực thành md5:
Nếu bạn muốn cho phép kết nối mới từ bên ngoài máy chủ như sử dụng PgAdmin3, bạn có thể thêm nhiều bản ghi "host" hơn, ví dụ như IP của máy tính để bàn của bạn.
Lưu và thoát.
Bây giờ hãy khởi động lại dịch vụ PostgreSQL bằng lệnh systemctl:
Cài đặt phpPgAdmin bằng lệnh zypper này:
Lệnh sẽ tự động cài đặt các phụ thuộc PHP và máy chủ web apache.
Tiếp theo, hãy vào thư mục phpPgAdmin và chỉnh sửa tệp cấu hình config.inc.php.
Trong dòng cấu hình máy chủ 18, hãy đặt giá trị thành "localhost".
Nếu bạn muốn cho phép người dùng có tên "postgres" hoặc "root" đăng nhập vào postgresql bằng phpPgAdmin, bạn có thể đặt bảo mật bổ sung thành false, nhưng không nên đặt thành false. kiểm tra dòng 93.
Lưu và thoát.
Sau đó kích hoạt phần mở rộng PHP và phiên bản trong apache khi chúng cần thiết cho phpPgAdmin:
Bây giờ hãy khởi động lại tất cả các dịch vụ bằng lệnh systemctl:
http://192.168.1.101/phpPgAdmin/
Đăng nhập bằng tên người dùng nano và mật khẩu 'aqwe123@'.
nếu bạn đăng nhập bằng người dùng 'postgres' và mật khẩu đúng, thì không được phép.
Postgresql là nền tảng chéo và chạy trên nhiều hệ điều hành như Linux, OSX, Windows và họ BSD. Đây là lựa chọn đúng đắn khi bạn có một ứng dụng có khối lượng công việc cơ sở dữ liệu lớn. Postgres đã được nhiều tổ chức lớn sử dụng bao gồm Yahoo, Instagram và Disqus. Postgres cũng được cung cấp dưới dạng phần mềm dưới dạng dịch vụ (SaaS) bởi ví dụ. Heroku và AWS (Amazon Web Services).
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt Postgres trên máy chủ của riêng bạn với OpenSUSE Leap làm hệ điều hành. Sau đó, tôi sẽ cài đặt phpPgAdmin để chúng ta có thể quản lý cơ sở dữ liệu Postgres của mình từ trình duyệt web.
Điều kiện tiên quyết
- OpenSUSE Leap 42.1
- Quyền root
Bước 1 - Cài đặt PostgreSQL
Kho lưu trữ openSUSE chứa hai phiên bản Postgres. Trong bước này, chúng ta sẽ cài đặt PostgreSQL 9.4 trên openSUSE bằng lệnh zypper.Cài đặt PostgreSQL bằng zypper:
Mã:
zypper trong postgresql94 postgresql94-contrib postgresql94-server
Mã:
systemctl start postgresql
Bước 2 - Cấu hình Người dùng Mặc định
Trong bước này, chúng ta sẽ đặt mật khẩu cho người dùng postgres. Postgresql sử dụng một khái niệm tương tự như hệ thống người dùng Linux có tên là "vai trò" để xác thực và ủy quyền cơ bản. Theo mặc định, postgresql tạo một người dùng mới có tên "postgres" để quản lý máy chủ postgresql.Chúng ta hãy thực hiện bước đầu tiên để cấu hình cơ sở dữ liệu postgresql bằng cách đăng nhập vào người dùng postgres từ thiết bị đầu cuối:
Mã:
sudo su
su - postgres
Mã:
psql
Mã:
\password postgres
Mật khẩu mới:
Bước 3 - Tạo người dùng PostgreSQL mới
Trong bước này, chúng ta sẽ tạo một người dùng/vai trò mới với các đặc quyền của siêu người dùng và tạo một cơ sở dữ liệu mới, đồng thời cấp quyền truy cập cho người dùng đó.Để tạo một người dùng mới, chúng ta phải đăng nhập với tư cách là người dùng postgres, sau đó tạo một vai trò và cơ sở dữ liệu mới bằng lệnh bên dưới:
Mã:
su - postgres
createuser -s nano
createdb nano_db
-s tùy chọn được sử dụng để cấp cho người dùng mới các đặc quyền siêu người dùng.
nano là tên người dùng mới.
nano_db là tên cơ sở dữ liệu mới.
Bây giờ hãy đăng nhập vào shell psql postgresql và cấp cho vai trò mới của chúng ta một mật khẩu và cấp quyền truy cập cơ sở dữ liệu.
Mã:
psql
thay đổi người dùng nano bằng mật khẩu được mã hóa 'aqwe123@';
cấp tất cả các đặc quyền trên cơ sở dữ liệu nano_db cho nano;
Người dùng này sẽ được sử dụng để đăng nhập vào postgresql từ giao diện phpPgAdmin dựa trên web vì chúng ta không nên cho phép bất kỳ người dùng mặc định hoặc người dùng nào không có mật khẩu đăng nhập vào postgresql từ phpPgAdmin.
Bước 4 - Cấu hình PostgreSQL
Trong bước này, chúng ta sẽ cấu hình PostgreSQL để lắng nghe trên IP công khai để chúng ta có thể truy cập nó bằng các công cụ mô hình hóa DB từ xa từ máy tính để bàn của mình. Bạn có thể bỏ qua bước này nếu không muốn truy cập Postgres từ xa.Đi tới thư mục postgresql "/var/lib/pgsql/" và chỉnh sửa tệp cấu hình chính "postgresql.conf" bằng trình soạn thảo yêu thích của bạn:
Mã:
cd /var/lib/pgsql/
cd data/
vim postgresql.conf
Bỏ chú thích dòng 63 để cấu hình cổng mặc định.
Mã:
listen_addresses = '*'
port = 5432
Để cho phép truy cập từ ứng dụng web phpPgAdmin vào cơ sở dữ liệu PostgreSQL, chúng ta cần chỉnh sửa tệp pg_hba.conf và thay đổi một số thiết lập cấu hình.
Sử dụng vim để chỉnh sửa tệp "pg_hba.conf":
Mã:
vim pg_hba.conf
Mã:
#TYPE Database User Address Method
local all all md5
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
Lưu và thoát.
Bây giờ hãy khởi động lại dịch vụ PostgreSQL bằng lệnh systemctl:
Mã:
systemctl restart postgresql
Bước 5 - Cài đặt và cấu hình phpPgAdmin
phpPgAdmin là ứng dụng dựa trên web để quản lý cơ sở dữ liệu PostgreSQL. Ứng dụng này dựa trên PHP và cung cấp GUI để quản lý cơ sở dữ liệu và tạo vai trò. Trong bước này, chúng ta sẽ cài đặt phpPgAdmin và vì có thể truy cập từ trình duyệt web nên chúng ta sẽ sử dụng apache2 làm máy chủ web.Cài đặt phpPgAdmin bằng lệnh zypper này:
Mã:
zypper trong phpPgAdmin
Tiếp theo, hãy vào thư mục phpPgAdmin và chỉnh sửa tệp cấu hình config.inc.php.
Mã:
cd /etc/phpPgAdmin/
vim config.inc.php
Mã:
$conf['servers'][0]['host'] = 'localhost';
Mã:
$conf['extra_login_security'] = true;
Sau đó kích hoạt phần mở rộng PHP và phiên bản trong apache khi chúng cần thiết cho phpPgAdmin:
Mã:
a2enmod php5
a2enmod version
Mã:
systemctl restart postgresql
systemctl restart apache2
Bước 6 - Kiểm tra
Truy cập phpPgAdmin từ trình duyệt web bằng URL:http://192.168.1.101/phpPgAdmin/
Đăng nhập bằng tên người dùng nano và mật khẩu 'aqwe123@'.
nếu bạn đăng nhập bằng người dùng 'postgres' và mật khẩu đúng, thì không được phép.