Cài đặt và cấu hình ban đầu của PostgreSQL. Tạo cơ sở dữ liệu

PostgreSQL là một DBMS quan hệ đối tượng đa nền tảng với mã nguồn mở mã nguồn. Bài viết này sẽ hướng dẫn bạn cách cài đặt PostgreSQL trong Ubuntu Linux, kết nối với nó và chạy một số truy vấn SQL đơn giản cũng như cách thiết lập bản sao lưu.

Để cài đặt PostgreSQL 9.2 trên Ubuntu 12.10, hãy chạy các lệnh sau:

sudo apt-add-repository ppa:pitti/ postgresql
cập nhật sudo apt-get
sudo apt-get cài đặt postgresql-9.2

Hãy thử làm việc với DBMS thông qua shell:

sudo -u postgres psql

Hãy tạo cơ sở dữ liệu thử nghiệm và người dùng thử nghiệm:

TẠO CƠ SỞ DỮ LIỆU test_database;
TẠO NGƯỜI DÙNG test_user BẰNG mật khẩu "qwerty";
CẤP TẤT CẢ TRÊN CƠ SỞ DỮ LIỆU test_database CHO test_user;

Để thoát khỏi shell, nhập lệnh \q .

Bây giờ hãy thử làm việc với cơ sở dữ liệu đã tạo thay mặt cho test_user:

psql -h localhost test_database test_user

Hãy tạo một bảng mới:

TẠO SEQUENCE user_ids;
TẠO người dùng BẢNG (
id INTEGER PRIMARY KEY MẶC ĐỊNH TIẾP THEO ("user_ids") ,
đăng nhập CHAR(64) ,
mật khẩu CHAR(64));

Xin lưu ý rằng, không giống như một số DBMS khác, PostgreSQL không có các cột có thuộc tính auto_increment. Thay vào đó, Postgres sử dụng trình tự. TRÊN khoảnh khắc này Chỉ cần biết rằng bằng cách sử dụng hàm nextval, chúng ta có thể nhận được các số duy nhất cho một chuỗi nhất định:

CHỌN TIẾP THEO ("user_ids" );

Bằng cách đặt giá trị mặc định cho trường id của bảng người dùng thành TIẾP THEO("user_ids"), chúng ta đã đạt được hiệu quả tương tự như auto_increment mang lại. Khi thêm bản ghi mới vào bảng, chúng ta không phải chỉ định id vì một id duy nhất sẽ được tạo tự động. Nhiều bảng có thể sử dụng cùng một trình tự. Bằng cách này, chúng tôi có thể đảm bảo rằng giá trị của một số trường trong các bảng này không trùng nhau. Theo nghĩa này, trình tự linh hoạt hơn auto_increment.

Có thể tạo cùng một bảng chỉ bằng một lệnh:

TẠO BẢNG user2 (
id KHÓA CHÍNH SERIAL,
đăng nhập CHAR(64) ,
mật khẩu CHAR(64));

Trong trường hợp này, chuỗi trường id được tạo tự động.

Bây giờ, bằng cách sử dụng lệnh \d, bạn có thể xem danh sách tất cả các bảng có sẵn và bằng cách sử dụng người dùng \d, bạn có thể xem mô tả về bảng người dùng. Nếu bạn không nhận được thông tin mình đang tìm kiếm, hãy thử \d+ thay vì \d . Bạn có thể lấy danh sách cơ sở dữ liệu bằng lệnh \l và chuyển sang cơ sở dữ liệu cụ thể bằng lệnh \c dbname. Để hiển thị trợ giúp về lệnh, hãy nói \? .

Điều quan trọng cần lưu ý là PostgreSQL chuyển đổi tên bảng và cột thành chữ thường theo mặc định. Nếu bạn không muốn hành vi này, bạn có thể sử dụng dấu ngoặc kép:

TẠO BẢNG "anotherTable" ("someValue" VARCHAR (64 ) );

Một tính năng khác của PostgreSQL có thể gây khó khăn khi bắt đầu làm việc với DBMS này là cái gọi là “lược đồ”. Lược đồ giống như một không gian tên cho các bảng, giống như một thư mục chứa các bảng bên trong cơ sở dữ liệu.

Tạo một lược đồ:

TẠO đặt chỗ SCHEMA;

Chuyển sang sơ đồ:

THIẾT LẬP search_path ĐỂ đặt chỗ;

Danh sách xem các chương trình hiện có bạn có thể sử dụng lệnh \dn. Lược đồ mặc định được đặt tên là public. Về nguyên tắc, bạn có thể sử dụng thành công PostgreSQL mà không cần biết đến sự tồn tại của các lược đồ. Nhưng khi làm việc với mã kế thừa và trong một số trường hợp phức tạp, việc biết về lược đồ có thể rất hữu ích.

Mặt khác, làm việc với PostgreSQL không khác nhiều so với làm việc với bất kỳ DBMS quan hệ nào khác:

CHÈN VÀO người dùng (đăng nhập, mật khẩu)
GIÁ TRỊ ("afiskon", "123456" );
CHỌN * TỪ người dùng;

Nếu bây giờ bạn cố gắng kết nối với Postgres từ một máy khác, bạn sẽ thất bại:

psql -h 192.168.0.1 test_database test_user

Psql: không thể kết nối với máy chủ: Kết nối bị từ chối
Máy chủ có đang chạy trên máy chủ "192.168.0.1" và chấp nhận
Kết nối TCP/IP trên cổng 5432?

Để khắc phục điều này, hãy thêm dòng:

listen_addresses = "localhost,192.168.0.1"

...vào tệp /etc/postgresql/9.2/main/postgresql.conf.

1. Cài đặt

1.1. Cài đặt từ kho lưu trữ chính thức

Nếu cái mới nhất có sẵn quan trọng với bạn Phiên bản PostgreSQL(nếu không, tôi khuyên bạn nên suy nghĩ kỹ), thì bạn cần cài đặt nó từ kho PostgreSQL chính thức. Điều này có thể được thực hiện bằng cách làm theo các hướng dẫn chính thức. Sau đó, bạn nên cập nhật các gói:

$ sudo apt-get cập nhật

Và cài đặt PostgreSQL bằng lệnh:

$ sudo apt-get cài đặt postgresql-x.x

  • xx- phiên bản bắt buộc

Danh sách tất cả phiên bản có sẵn có thể xem bằng lệnh:

$ sudo apt-cache tìm kiếm postgresql

1.2. Cài đặt từ kho lưu trữ hệ điều hành

Việc cài đặt PostgreSQL từ kho lưu trữ hệ điều hành được thực hiện bằng cách thêm hai gói chính:

$ sudo apt-get cài đặt postgresql postgresql-contrib

2. Bảng điều khiển PostgreSQL

Mọi thao tác có sẵn trên cơ sở dữ liệu và người dùng đều được thực hiện từ bảng điều khiển psql.

2.1. Đăng nhập vào bảng điều khiển

Đầu tiên bạn cần đăng nhập với tư cách người dùng postgres, điều này chỉ có thể thực hiện được với quyền nguồn gốc:

# su - postgres

Người dùng postgres- đây là một loại siêu người dùng cho cơ sở dữ liệu Dữ liệu PostgreSQL. Sau đó, từ bên dưới người dùng postgres bạn có thể đăng nhập vào bảng điều khiển:

Hoặc dễ dàng hơn, chỉ cần đăng nhập vào bảng điều khiển psql dưới quyền người dùng postgres:

$ sudo -u postgres psql

2.2. Thoát khỏi bảng điều khiển

Khi tất cả các thao tác trên người dùng và cơ sở dữ liệu PostgreSQL đã được hoàn thành trong bảng điều khiển psql, bạn không thể tìm ra cách thoát khỏi nó ngay lập tức. Mọi thứ ở đây rất đơn giản:

Postgres=#\q

Và, nếu cần, chúng tôi để người dùng postgres:

3. Người dùng PostgreSQL

3.1. Tạo người dùng

Mọi thứ ở đây khá đơn giản:

# TẠO tên người dùng NGƯỜI DÙNG BẰNG MẬT KHẨU "12345";

  • tên tài khoản- đăng nhập người dùng mới
  • ‘12345’ - Mật khẩu người dùng. Đã nhập trong dấu ngoặc kép

3.2. Xóa người dùng

Ở đây thậm chí còn đơn giản hơn:

# THẢ tên người dùng NGƯỜI DÙNG;

  • tên tài khoản- thông tin đăng nhập của người dùng cần xóa.

4. Cơ sở dữ liệu

Mọi thao tác với cơ sở dữ liệu cũng được thực hiện trong console psql.

4.1. Tạo cơ sở dữ liệu

Mọi thứ ở đây đều giống như khi tạo người dùng:

# TẠO tên cơ sở dữ liệu db;

4.2. Xóa cơ sở dữ liệu

# THẢ dbname CƠ SỞ DỮ LIỆU;
  • tên db- tên của cơ sở dữ liệu sẽ bị xóa

Xin lưu ý rằng cơ sở dữ liệu sẽ từ chối xóa trong một số trường hợp nhất định:

  • Nếu có người dùng có quyền đối với cơ sở dữ liệu này. Trước khi xóa cơ sở dữ liệu, quyền của họ phải được thu hồi. Thêm về điều này sau.
  • Nếu có ít nhất một phiên kết nối mở với cơ sở dữ liệu. Trong trường hợp này, các phiên sẽ cần phải được đóng lại. Phương án cuối cùng là bạn có thể chỉ cần dừng các máy chủ tương tác với cơ sở dữ liệu này tại thời điểm xóa nó (mặc dù việc khởi động chúng sau khi xóa cơ sở dữ liệu chẳng có ý nghĩa gì)

4.3. Phân quyền cho người dùng

Bản thân việc có cơ sở dữ liệu và người dùng trong hệ thống PostgreSQL không mang lại kết quả. Vì hoạt động chính xác người dùng cụ thể với một cơ sở dữ liệu cụ thể, anh ta cần được giao quyền làm việc với nó. Để thực hiện việc này, hãy chạy lệnh:

# CẤP TẤT CẢ CÁC ĐẶC QUYỀN TRÊN dbname CƠ SỞ DỮ LIỆU CHO tên người dùng;

  • tên db- tên của cơ sở dữ liệu mà quyền truy cập phải được cấp
  • tên tài khoản- tên của người dùng sẽ được cấp quyền đối với cơ sở dữ liệu được chỉ định

4.4. Xóa quyền người dùng

Đôi khi, cần phải thay đổi người dùng quản lý cơ sở dữ liệu hoặc đơn giản là thu hồi quyền xóa nó sau này. Tôi khuyên bạn không nên bỏ qua lệnh này và hành động theo nguyên tắc “Một người dùng quản lý một cơ sở dữ liệu”.

Thử nghiệm đầu tiên để chứng minh rằng bạn có thể truy cập vào máy chủ cơ sở dữ liệu là cố gắng tạo cơ sở dữ liệu. Máy chủ đang chạy PostgreSQL có thể quản lý nhiều cơ sở dữ liệu. Thông thường, đối với mỗi dự án hoặc mỗi người dùng nó được sử dụng cơ sở riêng biệt dữ liệu. Có thể quản trị viên máy của bạn đã tạo cơ sở dữ liệu cho bạn. Đáng lẽ nó phải cho bạn biết tên cơ sở dữ liệu của bạn. Trong trường hợp này, bạn có thể bỏ qua phần này và chuyển sang phần tiếp theo. Để tạo căn cứ mới dữ liệu, trong ví dụ này được gọi là mydb , bạn có thể sử dụng lệnh tiếp theo: $createdb mydb

Nếu lệnh hoàn thành mà không có bất kỳ thông báo nào thì bước nàyđã được thông qua thành công và bạn có thể bỏ qua nội dung được viết bên dưới cho đến hết phần này.

Nếu bạn nhận được một cái gì đó tương tự như: createb: command không tìm thấy

điều này có nghĩa là sản phẩm PostgreSQL không được cài đặt đúng cách. Không phải mọi thứ đã được cài đặt hoặc đường dẫn tìm kiếm trong trình bao của bạn không được đặt phù hợp. Hãy thử gọi lệnh này bằng đường dẫn đầy đủ:

$ /usr/local/pgsql/bin/createdb mydb

Đường dẫn đầy đủ trên máy của bạn có thể khác. Hãy liên hệ với quản trị viên của bạn hoặc kiểm tra hướng dẫn cài đặt để khắc phục tình trạng này.

Một thông báo khác mà bạn có thể nhận được: createb: không thể kết nối với cơ sở dữ liệu postgres: không thể kết nối với máy chủ: Không có tệp hoặc thư mục như vậy Không có tệp hoặc thư mục như vậy Máy chủ có chạy cục bộ và chấp nhận kết nối trên ổ cắm tên miền Unix "/tmp/. s. PGSQL.5432"?

Điều này có nghĩa là máy chủ chưa được khởi động hoặc máy chủ không được khởi động như mong đợi bởi lệnh createb. Một lần nữa, hãy kiểm tra hướng dẫn cài đặt hoặc tham khảo ý kiến ​​quản trị viên của bạn.

Một thông báo khác bạn có thể nhận được: createb: không thể kết nối với cơ sở dữ liệu postgres: FATAL: người dùng "joe" không tồn tại

nơi tên đăng nhập của bạn được đề cập thay vì joe. Thông báo này xuất hiện nếu quản trị viên chưa tạo người dùng cho bạn trong PostgreSQL. (Người dùng PostgreSQL không phải là người dùng hệ điều hành.) Nếu bạn là quản trị viên, hãy xem Chương 20 để biết thông tin về cách tạo người dùng. Bạn sẽ cần phải đăng ký với hệ điều hành dưới tên của người dùng mà PostgreSQL đang chạy (thường là postgres) để tạo người dùng đầu tiên trong DBMS. Đối với lệnh tạo cơ sở dữ liệu, bạn cũng có thể chỉ định tên người dùng trong PostgreSQL khác với tên người dùng hệ điều hành hiện tại của bạn; trong trường hợp này, bạn cần đặt tên người dùng PostgreSQL bằng tùy chọn -U hoặc đặt biến môi trường PGUSER.

Nếu như người dùng mong muốn tồn tại nhưng không có các quyền cần thiết để tạo cơ sở dữ liệu, bạn sẽ thấy thông báo sau: createb: tạo cơ sở dữ liệu không thành công: LỖI: quyền bị từ chối tạo cơ sở dữ liệu

Không phải mọi người dùng đều có quyền tạo cơ sở dữ liệu mới. Nếu PostgreSQL từ chối nỗ lực tạo cơ sở dữ liệu của bạn thì quản trị viên máy của bạn sẽ cần cấp cho bạn quyền tạo cơ sở dữ liệu. Hãy hỏi ý kiến ​​anh ấy trong trường hợp này. Nếu bạn đã tự mình cài đặt PostgreSQL thì bạn nên làm vậy, vì mục đích mà phần này theo đuổi. hướng dẫn đào tạo connect với tư cách là người dùng thay mặt máy chủ cơ sở dữ liệu được khởi chạy.

Bạn cũng có thể tạo cơ sở dữ liệu với bất kỳ tên nào khác. PostgreSQL cho phép bạn tạo bất kỳ số lượng cơ sở dữ liệu nào trên một máy chủ. Tên cơ sở dữ liệu phải bao gồm các chữ cái và số (phải luôn có một chữ cái ở đầu) và có độ dài không quá 63 byte. Việc tạo cơ sở dữ liệu có cùng tên với người dùng khá thuận tiện. Nhiều công cụ sẽ mặc định đây là tên cơ sở dữ liệu, do đó bạn không cần phải bấm quá nhiều nút. Để tạo một cơ sở dữ liệu có cùng tên với người dùng, chỉ cần gõ: $ createb Nếu bạn không muốn sử dụng cơ sở dữ liệu của mình trong tương lai, bạn có thể xóa nó. Ví dụ: nếu bạn là chủ sở hữu (người tạo) cơ sở dữ liệu mydb, bạn có thể loại bỏ nó bằng lệnh sau: $ dropdb mydb

(Đối với lệnh này, bạn phải đảm bảo chỉ định tên cơ sở dữ liệu; nó sẽ không cho rằng tên cơ sở dữ liệu là tên người dùng hiện tại). Lệnh này sẽ xóa vật lý tất cả các tệp được liên kết với cơ sở dữ liệu đã chỉ định để không thể khôi phục chúng, vì vậy hãy hết sức cẩn thận khi thực hiện thao tác này.

Sau khi bạn đã tải về Cơ sở dữ liệu từ khóa tiếng Anh , bạn cần cài đặt máy chủ cơ sở dữ liệu cục bộ và tìm hiểu cách thực hiện các lựa chọn. Để làm điều này, chúng tôi cung cấp hướng dẫn từng bước.

QUAN TRỌNG: Nếu bạn không có kinh nghiệm làm việc với cơ sở dữ liệu hoặc trải nghiệm này là tối thiểu thì chúng tôi thực sự khuyên bạn nên bắt đầu với cơ sở tối thiểu để thực hiện quy trình.

Ảnh chụp màn hình trong hướng dẫn cho thấy cách làm việc với đế tối thiểu và theo đó, thời gian được chỉ định cho đế tối thiểu, nhưng làm việc với đế mở rộng và đế tối đa sẽ mất nhiều thời gian hơn.

Tải xuống và cài đặt máy chủ cơ sở dữ liệu PostgreSQL

http://www.postgresql.org/download/windows/

1. Tải xuống chương trình miễn phí cho cơ sở dữ liệu PostgreSQL từ trang web chính thức http://www.postgresql.org/
tải xuống/windows/

http://www.enterprisedb.com/products-services-training/pgdownload#windows:

Sau đó theo liên kết đến trang chi tiết phiên bản cơ sở dữ liệu cho các hệ điều hành khác nhau: http://www.enterprisedb.com/
sản phẩm-dịch vụ-đào tạo/
pgdownload#windows :


QUAN TRỌNG: Chúng tôi khuyên bạn nên cài đặt máy chủ cơ sở dữ liệu và thực hiện các lựa chọn trong Hệ thống 64 bit có ít nhất 6 GB bộ nhớ truy cập tạm thời khi làm việc với cơ sở dữ liệu tối thiểu và mở rộng. Trong trường hợp cơ sở tối đa, dung lượng RAM được khuyến nghị là từ 32 GB, cũng là điều mong muốn đĩa nhanh. Trên máy tính có hệ thống 32 bit, quá trình nhập dữ liệu, lập chỉ mục và thực sự truy xuất dữ liệu sẽ mất một thời gian rất dài, vì vậy tốt hơn hết bạn nên từ bỏ ý định này.

Nếu bạn không biết độ sâu bit của hệ điều hành, bạn có thể tra cứu nó trong thuộc tính máy tính ( nút bên phải chuột vào mục “Máy tính”, chọn “Thuộc tính” từ menu):


2. Cài đặt cơ sở dữ liệu PostgreSQL đã tải xuống. Trong quá trình cài đặt, hầu hết mọi thứ đều theo mặc định...


...ngoại trừ một số thứ.

3. Chúng ta bắt đầu thao tác tối ưu hóa bảng theo cách tương tự:

chân không "eng_data_table";


Quá trình tối ưu hóa mất trung bình 15-30 phút.

Lưu ý: Chúng tôi thực hiện từng yêu cầu một, trước tiên hãy xóa các yêu cầu trước đó đã được thực hiện. Bạn có thể tìm hiểu xem yêu cầu đã được hoàn thành hay chưa từ thông báo trong Ngăn Đầu ra ở phía dưới (nó xuất hiện khi yêu cầu được hoàn thành) và bạn có thể tìm hiểu thời gian thực hiện trên thanh trạng thái ở cuối cửa sổ.