Thứ năm, 11/06/2015 | 00:00 GMT+7

Cài đặt postgresql 9.4 trên Debian 8

Database quan hệ là nền tảng của tổ chức dữ liệu cho nhiều nhu cầu. Nó cung cấp mọi thứ từ mua sắm trực tuyến đến phóng tên lửa. Một database tin cậy là PostgreSQL. PostgreSQL tuân theo hầu hết tiêu chuẩn SQL, có các giao dịch ACID, hỗ trợ các khóa và chế độ xem foreign, và vẫn đang được phát triển tích cực.

Nếu ứng dụng bạn đang chạy cần sự ổn định, chất lượng gói và quản trị dễ dàng, thì Debian 8 (tên mã “Jessie”) là một trong những thành phần tốt nhất cho bản phân phối Linux. Nó phát triển chậm hơn một chút so với các "bản phân phối" khác, nhưng tính ổn định và chất lượng của nó đã được công nhận. Nếu ứng dụng hoặc dịch vụ của bạn cần một database , thì sự kết hợp giữa Debian 8 và PostgreSQL là một trong những cách tốt nhất.

Bài viết này sẽ hướng dẫn bạn cách cài đặt PostgreSQL trên version Debian 8 Stable mới và bắt đầu.

Yêu cầu

Điều đầu tiên là khởi động hệ thống Ổn định Debian 8. Bạn có thể làm theo hướng dẫn từ bài viết Cài đặt Server Ban đầu với Debian 8 . Hướng dẫn này giả sử bạn đã sẵn sàng aø Debian 8 Stable Server.

Trừ khi có lưu ý khác, tất cả các lệnh trong hướng dẫn này phải được chạy với quyền user không phải root với các quyền sudo. Để tìm hiểu cách tạo user và cấp cho họ quyền sudo, hãy xem Cài đặt server ban đầu với Debian 8 .

Cài đặt PostgreSQL

Trước khi cài đặt PostgreSQL, hãy đảm bảo bạn có thông tin mới nhất từ kho Debian bằng cách cập nhật danh sách gói apt với:

  • sudo apt-get update

Bạn sẽ thấy danh sách gói được cập nhật và thông báo sau:

Reading package lists... Done. 

Có một số gói bắt đầu bằng postgresql :

Để cài đặt trực tiếp gói postgresql-9.4 :

  • sudo apt-get install postgresql-9.4 postgresql-client-9.4

Khi được hỏi, hãy gõ Y để cài đặt các gói. Nếu mọi thứ đều ổn, các gói hiện đã được download từ repository và được cài đặt.

Kiểm tra cài đặt

Để kiểm tra xem server PostgreSQL đã được cài đặt chính xác và đang chạy hay chưa, bạn có thể sử dụng lệnh ps :

# ps -ef | grep postgre 

Bạn sẽ thấy thông tin như thế này trên terminal :

postgres 32164     1  0 21:58 ?        00:00:00 /usr/lib/postgresql/9.4/bin/postgres -D /var/lib/   postgresql/9.4/main -c config_file=/etc/postgresql/9.4/main/postgresql.conf postgres 32166 32164  0 21:58 ?        00:00:00 postgres: checkpointer process postgres 32167 32164  0 21:58 ?        00:00:00 postgres: writer process postgres 32168 32164  0 21:58 ?        00:00:00 postgres: wal writer process postgres 32169 32164  0 21:58 ?        00:00:00 postgres: autovacuum launcher process postgres 32170 32164  0 21:58 ?        00:00:00 postgres: stats collector process  

Sự thành công! PostgreSQL đã được cài đặt thành công và đang chạy.

Truy cập Database PostgreSQL

Trên Debian, PostgreSQL được cài đặt với user mặc định và database mặc định đều được gọi là postgres . Để kết nối với database , trước tiên bạn cần chuyển sang user postgres bằng cách đưa ra lệnh sau khi đăng nhập với quyền là user root (điều này sẽ không hoạt động với quyền truy cập sudo):

  • su - postgres

Đến đây bạn sẽ được đăng nhập với quyền là postgres . Để khởi động console PostgreSQL, hãy nhập psql :

  • psql

Làm xong! Bạn nên đăng nhập vào console PostgreSQL. Bạn sẽ thấy dấu nhắc sau:

psql (9.4.2) Type "help" for help.  postgres=#  

Để thoát khỏi console psql, chỉ cần sử dụng lệnh \q .

Tạo role mới

Theo mặc định, Postgres sử dụng một khái niệm gọi là " role " để hỗ trợ xác thực và ủy quyền. Theo một số cách, chúng tương tự như các account kiểu Unix thông thường, nhưng PostgreSQL không phân biệt giữa user và group và thay vào đó thích thuật ngữ linh hoạt hơn “ role ”.

Khi cài đặt, PostgreSQL được cài đặt để sử dụng xác thực “danh tính”, nghĩa là nó liên kết các role PostgreSQL với account hệ thống Unix / Linux phù hợp. Nếu một role PostgreSQL tồn tại, nó có thể được đăng nhập bằng cách đăng nhập vào account hệ thống Linux được liên kết.

Quy trình cài đặt đã tạo một account user được gọi là postgres được liên kết với role Postgres mặc định.

Để tạo các role bổ sung, ta có thể sử dụng lệnh createuser . Lưu ý lệnh này nên được phát hành dưới dạng user postgres , không phải bên trong console PostgreSQL:

  • createuser --interactive

Về cơ bản, đây là một tập lệnh shell tương tác gọi các lệnh PostgreSQL chính xác để tạo user theo thông số kỹ thuật của bạn. Nó sẽ hỏi bạn một số câu hỏi: tên của role , liệu nó có phải là một superuser hay không, nếu role đó có thể tạo database mới và role đó có thể tạo ra những role mới hay không. Trang man có thêm thông tin:

  • man createuser

Tạo database mới

PostgreSQL được cài đặt theo mặc định với các role xác thực được yêu cầu bởi các account hệ thống phù hợp. (Bạn có thể biết thêm thông tin về điều này tại postgresql.org ). Nó cũng đi kèm với giả định một database phù hợp sẽ tồn tại cho role kết nối. Vì vậy, nếu tôi có một user được gọi là test1 , role đó sẽ cố gắng kết nối với database có tên là test1 theo mặc định.

Bạn có thể tạo database thích hợp bằng cách chỉ cần gọi lệnh này với quyền là user postgres :

  • createdb test1

Database test1 bây giờ đã được tạo.

Kết nối với PostgreSQL với user mới

Giả sử rằng bạn có một account Linux có tên test1 , đã tạo một role PostgreSQL test1 để trùng với nó và tạo database test1 . Để thay đổi account user trong Linux thành test1 :

  • su - test1

Sau đó, kết nối với database test1 dưới dạng role PostgreSQL test1 bằng lệnh:

  • psql

Đến đây bạn sẽ thấy dấu nhắc PostgreSQL với test1 user mới được tạo thay vì postgres .

Tạo và xóa bảng

Đến đây bạn đã biết cách kết nối với hệ thống database PostgreSQL, ta sẽ bắt đầu đi qua cách hoàn thành một số tác vụ cơ bản.

Đầu tiên, hãy tạo một bảng để lưu trữ một số dữ liệu. Hãy tạo một bảng mô tả thiết bị playground .

Cú pháp cơ bản cho lệnh này như sau:

CREATE TABLE table_name (     column_name1 col_type (field_length) column_constraints,     column_name2 col_type (field_length),     column_name3 col_type (field_length) ); 

Như bạn thấy , ta đặt tên cho bảng, sau đó xác định các cột mà ta muốn, cũng như loại cột và độ dài tối đa của trường dữ liệu . Ta cũng có thể tùy chọn thêm các ràng buộc bảng cho mỗi cột.

Bạn có thể tìm hiểu thêm về cách tạo và quản lý bảng trong Postgres trong bài viết Cách tạo, xóa và quản lý bảng trong PostgreSQL trên Server cloud .

Vì mục đích , ta sẽ tạo một bảng đơn giản như sau:

CREATE TABLE playground (     equip_id serial PRIMARY KEY,     type varchar (50) NOT NULL,     color varchar (25) NOT NULL,     location varchar(25) check (location in ('north', 'south', 'west', 'east', 'northeast', 'southeast', 'southwest', 'northwest')),     install_date date ); 

Ta đã làm một bàn chơi để kiểm kê các thiết bị mà ta có. Điều này bắt đầu với một ID thiết bị, thuộc loại nối tiếp. Kiểu dữ liệu này là một số nguyên tự động tăng dần. Ta đã cung cấp cho cột này ràng buộc của khóa chính nghĩa là các giá trị phải là duy nhất và không được rỗng.

Đối với hai trong số các cột , ta đã không đưa ra độ dài trường. Điều này là do một số loại cột không yêu cầu độ dài đã đặt vì độ dài được xác định bởi kiểu .

Sau đó, ta đưa ra các cột cho loại thiết bị và màu sắc, mỗi cột không được để trống. Sau đó, ta tạo một cột vị trí và tạo một ràng buộc yêu cầu giá trị phải là một trong tám giá trị có thể. Cột cuối cùng là cột ngày ghi ngày ta lắp đặt thiết bị.

Để xem các bảng, hãy sử dụng lệnh \dt trên dấu nhắc psql. Kết quả sẽ tương tự như

             List of relations  Schema |    Name    | Type  |  Owner  --------+------------+-------+----------  public | playground | table | postgres 

Như bạn thấy, ta có bàn chơi .

Thêm, truy vấn và xóa dữ liệu trong bảng

Bây giờ ta đã tạo một bảng, ta có thể chèn một số dữ liệu vào đó.

Hãy thêm một đường trượt và một chiếc xích đu. Ta thực hiện điều này bằng cách gọi bảng mà ta muốn thêm vào, đặt tên cho các cột và sau đó cung cấp dữ liệu cho mỗi cột. Cầu trượt và xích đu có thể được thêm vào như thế này:

INSERT INTO playground (type, color, location, install_date) VALUES ('slide', 'blue', 'south', '2014-04-28'); INSERT INTO playground (type, color, location, install_date) VALUES ('swing', 'yellow', 'northwest', '2010-08-16'); 

Bạn nên nhận thấy một vài điều. Đầu tiên, hãy nhớ rằng tên cột không nên được trích dẫn, nhưng các giá trị cột mà bạn đang nhập cần được trích dẫn.

Một điều cần lưu ý nữa là ta không nhập giá trị cho cột equip_id . Điều này là do điều này được tạo tự động khi nào một hàng mới trong bảng được tạo.

Sau đó, ta có thể lấy lại thông tin ta đã thêm bằng lệnh :

SELECT * FROM playground; 

Đầu ra phải là

 equip_id | type  | color  | location  | install_date  ----------+-------+--------+-----------+--------------         1 | slide | blue   | south     | 2014-04-28         2 | swing | yellow | northwest | 2010-08-16 

Ở đây, bạn có thể thấy rằng ta equip_id đã được lấp đầy trong thành công và rằng tất cả các dữ liệu khác đã được tổ chức một cách chính xác. Nếu trang trình bày bị hỏng và ta xóa nó khỏi playground , ta cũng có thể xóa hàng khỏi bảng của bạn bằng lệnh :

DELETE FROM playground WHERE type = 'slide'; 

Nếu ta truy vấn lại bảng của bạn :

SELECT * FROM playground; 

Ta sẽ thấy slide không còn là một phần của bảng:

 equip_id | type  | color | location | install_date  ----------+-------+-------+----------+--------------         1 | slide | blue  | south    | 2014-04-28 

Lệnh hữu ích

Dưới đây là một số lệnh có thể giúp bạn hình dung về môi trường hiện tại của bạn :

  • \? : Nhận danh sách đầy đủ các lệnh psql, bao gồm cả những lệnh không được liệt kê ở đây.

  • \ h : Nhận trợ giúp về các lệnh SQL. Bạn có thể làm theo điều này bằng một lệnh cụ thể để nhận trợ giúp về cú pháp.

  • \ q : Thoát chương trình psql và thoát đến dấu nhắc Linux.

  • \ d : Liệt kê các bảng, dạng xem và chuỗi có sẵn trong database hiện tại.

  • \ du : Liệt kê các role có sẵn

  • \ dp : Liệt kê các quyền truy cập

  • \ dt : Liệt kê các bảng

  • \ l : Liệt kê database

  • \ c : Kết nối với một database khác. Theo tên database .

  • \ password : Thay đổi password cho tên user sau.

  • \ conninfo : Nhận thông tin về database hiện tại và kết nối.

Với các lệnh này, bạn có thể chuyển database PostgreSQL, bảng và role ngay lập tức.

Kết luận

Đến đây bạn sẽ có một database PostgreSQL đầy đủ chức năng được cài đặt và chạy trên hệ thống Debian của bạn . Xin chúc mừng! Có rất nhiều tài liệu để tiếp tục :

  • Hướng dẫn sử dụng PostgreSQL

  • Cài đặt gói postgresql-doc : sudo apt-get install postgresql-doc

  • Tệp README được cài đặt tại /usr/share/doc/postgresql-doc-9.4/tutorial/README

Để có danh sách đầy đủ các lệnh SQL được hỗ trợ trong PostgreSQL, hãy theo liên kết sau:

Để so sánh các chức năng khác nhau của database , bạn có thể kiểm tra:

Để hiểu rõ hơn về các role và quyền, hãy xem:


Tags:

Các tin liên quan

Cách sử dụng PostgreSQL với Ứng dụng Django của bạn trên Ubuntu 14.04
2015-03-25
Cách sử dụng PostgreSQL với Ứng dụng Django của bạn trên CentOS 7
2015-03-25
Cách sử dụng PostgreSQL với ứng dụng Ruby on Rails của bạn trên Ubuntu 14.04
2015-03-18
Cách sử dụng PostgreSQL với ứng dụng Ruby on Rails của bạn trên CentOS 7
2015-03-18
Cách cài đặt và sử dụng PostgreSQL trên Ubuntu 14.04
2014-04-28
Cách cài đặt và sử dụng Zope 2 và PostgreSQL trên Ubuntu 13.10
2014-03-25
Cách mở rộng quy mô theo chiều ngang một ứng dụng Laravel 4 với database PostgreSQL
2014-02-27
Mở rộng quy mô Ruby on Rails: Thiết lập một server PostgreSQL chuyên dụng (Phần 3)
2014-02-27
Cách thiết lập bản sao Master Slave trên PostgreSQL trên VPS Ubuntu 12.04
2013-10-29
Cách cài đặt và sử dụng PostgreSQL trên CentOS 6
2013-10-23