2011-11-03 27 views
10

Trang web cho Postgresql nói rằng pgcrypto được đưa vào tải xuống cho Postgresql 9.1. Tuy nhiên, không có tệp pgcrypto.sql. Nếu tôi tìm trong các thư mục tiện ích share \ có 3 file:Làm cách nào để cài đặt pgcrypto trong postgresql 9.1 trên Windows?

pgcrypto - 1.0.sql pgcrypto - đóng gói - 1.0.sql pgcrypto.control

Nếu tôi cố gắng để cài đặt với

\ i pgcrypto - 1.0.sql

tôi nhận được một loạt các lỗi như thế này:

psql:pgcrypto--1.0.sql:194: ERROR: could not access file "MODULE_PATHNAME": No such file or directory 

có lẽ các tập tin trong phần \ ext ension có nghĩa là được gọi bởi tập tin share \ contrib \ pgcrypto.sql (không tồn tại).

Trên linux trên Postgresql 8.4 Tôi phải cài đặt gói đóng gói để nhận pgcrypto.sql. Có gói nào khác mà tôi phải cài đặt trên Windows cho Postgresql 9.1 không?

Cảm ơn.

Trả lời

14

Trong phiên bản 9.19, cách cài đặt thêm mô-đun đã được thay đổi, những điều này giờ đây được gọi là EXTENSIONS và được cài đặt với câu lệnh SQL đặc biệt CREATE EXTENSION.

+0

tôi bước vào "CREATE HẠN", "CREATE HẠN pgcrypto", "CREATE HẠN pgcrypto - 1.0" và "CREATE HẠN pgcrypto - 1.0.sql" và không có gì xảy ra. Không có gì mới hiển thị trong Tiện ích trong pgAdmin. Tôi cần làm gì khác? –

+7

'tạo phần mở rộng pgcrypto' hoạt động cho tôi. Bạn đã cam kết tuyên bố của bạn? 'Select * từ pg_available_extensions' hiển thị gì cho bạn ngay sau khi bạn chạy' CREATE EXTENSION'? –

+0

Chạy "tạo tiện ích mở rộng pgcrypto" từ công cụ truy vấn trong pgadmin đã hoạt động. psql có một số vấn đề đang chạy trong Cygwin. Tôi phải có một vấn đề với phiên psql trong Cygwin. –

0

Tôi đã cố gắng chuyển đổi tập lệnh MySQL có chứa hàm SHA1 của họ. Sau khi thực hiện lệnh "create extension pgcrypto", ví dụ trong tài liệu PostgreSQL hoạt động hoàn hảo (ít nhất là tất cả các giá trị mà tôi đã thử cho đến nay).

Dưới đây là chức năng SHA1:

CREATE OR REPLACE FUNCTION sha1(bytea) returns text AS $$ 
    SELECT encode(digest($1, 'sha1'), 'hex') 
$$ LANGUAGE SQL STRICT IMMUTABLE; 

Cần lưu ý rằng tôi đã làm tất cả những điều trên PostgreSQL 9.1 với công cụ PgAdminIII và trên 64-bit Windows 7.

0

Nếu bạn cần sử dụng một số mở rộng, cách này là ví dụ cho pgcrypto: "CREATE EXTENSION pgcrypto" từ truy vấn cửa sổ, nhưng rất quan trọng khi nói rằng tập lệnh này phải được thực hiện trong DB mà bạn cần sử dụng phần mở rộng này, sau khi hoàn thành tập lệnh xác minh rằng nó được cài đặt, kiểm tra trong pgAdmin qua DB của bạn phần mở rộng seccion.

Tôi hy vọng sự trợ giúp này.

1

1.add các phần mở rộng: tạo mở rộng pgcrypto

2.check các phần mở rộng: select * from pg_available_extensions enter image description here

3.Use các phần mở rộng: chọn '{SHA}' || encode (digest ('test', 'sha1'), 'base64');

enter image description here

Các vấn đề liên quan