Cách cài đặt và sử dụng PostgreSQL trên CentOS 6
PostgreSQL, thường được gọi là “postgres”, là một hệ quản trị database phổ biến sử dụng ngôn ngữ truy vấn SQL để thao tác dữ liệu.Trong hướng dẫn này, ta sẽ trình bày cách cài đặt và sử dụng postgres trên CentOS VPS.
Cách cài đặt PostgreSQL
Mặc dù CentOS chứa các gói postgres trong repository lưu trữ mặc định của nó, ta sẽ sử dụng các gói có sẵn từ chính dự án postgres.
Điều này sẽ đảm bảo ta có quyền truy cập vào version mới nhất của phần mềm mà không cần phải cài đặt từ nguồn.
Loại trừ các Gói CentOS Postgres
Trước khi ta cài đặt postgres, ta phải loại trừ version CentOS của postgres để có được version mới nhất từ trang web của dự án.
Mở file cấu hình repository CentOS trong editor :
nano /etc/yum.repos.d/CentOS-Base.repo
Ở cuối phần [base]
, thêm một dòng loại trừ các gói postgres:
<pre>
[căn cứ]
name = CentOS- $ releasever - Cơ sở
mirrorlist = http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl = http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck = 1
gpgkey = file: /// etc / pki / rpm-gpg / RPM-GPG-KEY-CentOS-6
<span class = “highlight” >lude = postgresql * </span>
</pre>
Thêm dòng tương tự vào cuối phần [updates]
để ngăn yum cập nhật postgres từ repository mặc định :
<pre>
[cập nhật]
name = CentOS- $ releasever - Cập nhật
mirrorlist =http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl = http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck = 1
gpgkey = file: /// etc / pki / rpm-gpg / RPM-GPG-KEY-CentOS-6
<span class = “highlight” >lude = postgresql * </span>
</pre>
Thêm repository Postgres
Bây giờ, ta đã nói với bạn rằng đừng bận tâm đến các repository mặc định cho các tương tác gói postgres.
Ta cần cung cấp cho nó một giải pháp thay thế ngay bây giờ. Ta sẽ sử dụng các gói được cung cấp trên trang web của dự án postgres.
Truy cập trang web để tìm version postgres mới nhất có sẵn cho version CentOS của bạn .
Giữ Control khi nhấp chuột hoặc nhấp chuột phải vào liên kết trùng với version postgres mới nhất và version CentOS của bạn. Chọn "sao chép địa chỉ liên kết" hoặc bất kỳ tùy chọn tương tự nào có sẵn.
Quay lại phiên server nước của bạn, thay đổi thành folder chính của bạn. curl -O
và sau đó dán liên kết download :
<pre>
cd ~
curl -O <span class = “highlight”> http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-centos93-9.3-1.noarch.rpm </span>
</pre>
Cài đặt gói bạn vừa download bằng lệnh lệnh sau:
rpm -ivh pgdg*
Điều này sẽ cho phép hệ thống của bạn kéo gói postgres từ trang web của dự án.
Ta có thể làm điều đó ngay bây giờ để có được version mới nhất. Các gói này có đánh số version , vì vậy bạn cần tìm kiếm để xem version nào đang được sử dụng:
yum list postgres*
Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.linux.duke.edu * extras: mirror.linux.duke.edu * updates: mirrors.kernel.org Installed Packages postgresql93.x86_64 9.3.1-1PGDG.rhel6 @pgdg93 postgresql93-libs.x86_64 9.3.1-1PGDG.rhel6 @pgdg93 postgresql93-server.x86_64 9.3.1-1PGDG.rhel6 @pgdg93 Available Packages postgresql93-contrib.x86_64 9.3.1-1PGDG.rhel6 pgdg93 postgresql93-debuginfo.x86_64 9.3.1-1PGDG.rhel6 pgdg93
Ta có thể thấy rằng trong trường hợp này, tất cả các gói đều có "93" cho version 9.3. Ta muốn download các gói “-server”:
yum install postgresql93-server
Thay đổi “93” thành bất kỳ version postgres hiện tại nào dành cho hệ thống của bạn trong suốt phần còn lại của hướng dẫn này.
Khởi tạo Môi trường Database
Bạn có thể khởi tạo môi trường database bằng lệnh :
service postgresql-9.3 initdb
Sau đó, ta sẽ cấu hình nó để bắt đầu khi server khởi động và ta sẽ khởi động phần mềm:
chkconfig postgresql-9.3 on service postgresql-9.3 start
Bây giờ ta đã sẵn sàng để bắt đầu sử dụng postgres.
Cách đăng nhập vào database Postgres
Theo mặc định, postgres tạo một user và một database được gọi là postgres
.
Lược đồ bảo mật mặc định giả định user postgres sẽ chỉ có thể truy cập được đối với những người cần quyền truy cập. Điều này có thể được kiểm soát bằng cách cài đặt các luật sudo .
Ta tương tác với phần mềm database postgres thông qua một giao diện được gọi là psql
. Nó cung cấp dấu nhắc để ta có thể thao tác và truy vấn dữ liệu.
Bây giờ, hãy đăng nhập vào user postgres như thế này:
su - postgres
Dấu nhắc của bạn sẽ thay đổi. Đến đây bạn có thể kết nối với database trùng với tên user của bạn bằng lệnh :
psql
Dấu nhắc của bạn sẽ thay đổi , lần này để cho biết rằng bạn đang tương tác với database postgres.
Nếu bạn cần thoát khỏi giao diện này, bạn có thể nhập vào bất kỳ lúc nào:
\q
Sau đó, để quay lại shell user root , có thể chạy lệnh:
exit
Một số lệnh psql 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.
Tạo bảng Postgres
Ta có thể tạo bảng trong postgres bằng cú pháp sau:
<pre>
TẠO BẢNG <span class = “highlight”> tên bảng mới </span> (
<span class = “nổi bật”> bảng tiêu đề cột LOẠI chế cột DỮ LIỆU </ span>,
<span class = “highlight”> tiêu đề cột tiếp theo Ràng buộc cột LOẠI DỮ LIỆU </span>,
<span class = “highlight”> ràng buộc bảng </span>
<span class = “highlight”> ràng buộc bảng </span>
) INHERITS <span class = “highlight”> bảng hiện có để kế thừa từ </span>;
</pre>
Ta sẽ lập một bảng gọi là “kem que” để lưu trữ các loại kem que của ta và một số thông tin về chúng.
CREATE TABLE popsicles ( pop_id serial PRIMARY KEY, flavor varchar (50) NOT NULL, amount int NOT NULL, size varchar (10) check (size in ('small', 'normal', 'large')) );
Bây giờ ta có thể sử dụng lệnh \dt
để xem bảng:
\dt
List of relations Schema | Name | Type | Owner --------+-----------+-------+---------- public | popsicles | table | postgres (1 row)
Để xem các cột và cấu trúc dữ liệu mà ta vừa xác định, ta có thể gõ lệnh này:
\d popsicles
Table "public.popsicles" Column | Type | Modifiers --------+-----------------------+------------------------------------ ------------------------ pop_id | integer | not null default nextval('popsicles _pop_id_seq'::regclass) flavor | character varying(50) | not null amount | integer | not null size | character varying(10) | . . .
Chèn dữ liệu vào bảng Postgres
Bây giờ ta có một bảng trong database của bạn , nhưng vẫn chưa có dữ liệu trong đó. Ta có thể điền nó bằng cách sử dụng lệnh insert
.
Ta gõ INSERT INTO
theo sau là tên bảng. Sau đó, ta nhập danh sách tên cột được phân tách bằng dấu phẩy bên trong một tập hợp các dấu ngoặc đơn. Sau đó, ta nhập giá VALUES
, theo sau là tập hợp dấu ngoặc thứ hai chứa danh sách giá trị được phân tách bằng dấu phẩy tương ứng với tên cột.
Hãy thử nó ngay bây giờ. Ta sẽ chèn một số kem nho vào bàn của ta :
INSERT INTO popsicles (flavor, amount, size) VALUES ('grape', 10, 'normal');
INSERT 0 1
INSERT 0 1
cho biết lệnh của ta đã được chấp nhận thành công. Một số điều cần chú ý về lệnh này là các từ trong danh sách giá trị của ta nằm bên trong dấu nháy đơn (') và lệnh kết thúc bằng dấu chấm phẩy (;). Cả hai điểm này đều quan trọng cần nhớ.
Một điều nữa cần lưu ý là ta đã không đặt cột pop_id
. Đó là bởi vì ta đã xác định nó như một khóa chính . Cột này phải có các giá trị duy nhất cho mỗi mục nhập, do đó, postgres sẽ tự động gán giá trị có sẵn tiếp theo cho mỗi bản ghi ta tạo.
Hãy điền thêm một số dữ liệu để ta có một bảng hữu ích hơn:
INSERT INTO popsicles (flavor, amount, size) VALUES ('orange', 8, 'small'); INSERT INTO popsicles (flavor, amount, size) VALUES ('fudge', 20, 'large'); INSERT INTO popsicles (flavor, amount, size) VALUES ('eclair', 14, 'normal'); INSERT INTO popsicles (flavor, amount, size) VALUES ('rainbow', 4, 'small');
Nếu bạn nhớ lại, khi ta tạo bảng, ta đã xác định các giá trị được chấp nhận cho cột "kích thước". Postgres kiểm tra xem giá trị là “nhỏ”, “bình thường” hoặc “lớn”. Điều gì xảy ra nếu ta cố gắng cung cấp một giá trị khác ?:
INSERT INTO popsicles (flavor, amount, size) VALUES ('lime', 6, 'huge');
ERROR: new row for relation "popsicles" violates check constraint "popsicles_size_check" DETAIL: Failing row contains (6, lime, 6, huge).
Như bạn thấy , postgres đã xác thực rằng ta đã nhập đúng dữ liệu. Nó đã từ chối kem popsicle mới nhất của ta vì nó không có một trong các giá trị mà ta đã xác định cho kích thước.
Chọn dữ liệu từ bảng Postgres
Ta có thể truy vấn bảng mới của bạn để tìm dữ liệu bằng cách sử dụng lệnh select
. Lệnh select trả về dữ liệu từ một bảng phù hợp với tiêu chí được chỉ định.
Để trả lại tất cả thông tin từ bảng của ta , ta có thể sử dụng dấu hoa thị (*), là một biểu tượng đặc biệt nghĩa là "khớp mọi thứ":
SELECT * FROM popsicles;
pop_id | hương vị | số tiền | kích thước |
---|---|---|---|
1 | giống nho | 10 | bình thường |
2 | trái cam | số 8 | nhỏ |
3 | tin giờ chót | 20 | lớn |
4 | eclair | 14 | bình thường |
5 | cầu vồng | 4 | nhỏ |
(5 rows)
Ta có thể chọn theo cột bằng cách thay thế dấu hoa thị bằng các cột ta muốn:
SELECT flavor, amount FROM popsicles;
hương vị | số tiền |
---|---|
giống nho | 10 |
trái cam | số 8 |
tin giờ chót | 20 |
eclair | 14 |
cầu vồng | 4 |
(5 rows)
Nếu ta muốn bộ lọc chỉ hiển thị một số kết quả nhất định, ta có thể thêm bộ lọc where
vào cuối:
SELECT * FROM popsicles WHERE amount <= 10;
pop_id | hương vị | số tiền | kích thước |
---|---|---|---|
1 | giống nho | 10 | bình thường |
2 | trái cam | số 8 | nhỏ |
5 | cầu vồng | 4 | nhỏ |
(3 rows)
Kết luận
Đến đây bạn đã cài đặt postgres trên hệ thống của bạn và xử lý tốt cách sử dụng cơ bản của nó.
Có nhiều điều khác cần học khi giao dịch với postgres. Bạn có thể khám phá các bài viết khác của ta để tìm hiểu cách quản lý bảng , cách tạo truy vấn , cách quản lý
quyền , cách backup postgres vàcách bảo mật postgres .
<div class = “author”> Bởi Justin Ellingwood </div>
Các tin liên quan
Cách backup database PostgreSQL trên VPS Ubuntu2013-08-28
Cách bảo mật PostgreSQL trên VPS Ubuntu
2013-08-22
cách sử dụng role và quản lý quyền cấp trong PostgreSQL trên VPS
2013-08-05
cách sử dụng role và quản lý quyền cấp trong PostgreSQL trên VPS
2013-08-05
Cách tạo truy vấn dữ liệu trong PostgreSQL bằng cách sử dụng lệnh chọn
2013-08-02
Cách tạo, xóa & quản lý bảng trong PostgreSQL trên server cloud
2013-08-01