如何在Windows上的postgresql 9.1中安装pgcrypto?

问题描述:

该网页PostgreSQL的说,pgcrypto包含在下载PostgreSQL的9.1。然而,没有pgcrypto.sql文件。如果我看在共享\扩展目录有3个文件:如何在Windows上的postgresql 9.1中安装pgcrypto?

pgcrypto - 1.0.sql pgcrypto - 散装 - 1.0.sql pgcrypto.control

如果我尝试用

安装

\我pgcrypto - 1.0.sql

我得到这样一堆错误:

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

也许在共享\ EXT文件ension意味着被share \ contrib \ pgcrypto.sql文件调用(它不存在)。

在PostgreSQL的8.4的Linux我必须安装的contrib包拿到pgcrypto.sql。是否有另一个包,我必须在Windows上安装Postgresql 9.1?

谢谢。

在V9.1安装额外的模块被改变了,那些现在被称为扩展和安装一个特殊的SQL语句CREATE EXTENSION

+0

我进入 “创建扩展”, “创建扩展pgcrypto”, “创建扩展pgcrypto - 1.0” 和 “创建扩展pgcrypto - 1.0.sql” 什么都没有发生。在pgAdmin的扩展中没有新的显示。我还需要做什么? –

+7

'create extension pgcrypto'适用于我。你有没有提交你的陈述?在运行CREATE EXTENSION之后,'select * from pg_available_extensions'显示了什么? –

+0

在pgadmin的查询工具中运行“create extension pgcrypto”。 psql在cygwin中运行时遇到了一些问题。我必须在cygwin中遇到psql会话的问题。 –

我试图转换包含它们的SHA1功能的MySQL的脚本。在最后完成“create extension pgcrypto”命令后,PostgreSQL文档中的例子完美运行(至少我迄今为止所尝试的所有值)。

这里是SHA1功能:

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

应当指出的是,我所做的这一切对PostgreSQL的9.1与PgAdminIII工具和64位Windows 7

如果你需要使用一些扩展,方式是例如用于pgcrypto:“创建扩展pgcrypto”从窗口查询,而是说这个剧本必须在你需要使用这个扩展数据库来执行,在完成剧本后,非常重要验证它是否已安装,请通过数据库检查pgAdmin中的分机seccion。

我希望这个帮助。

1.增加的扩展:创建扩展pgcrypto

2.检查扩展:SELECT * FROM pg_available_extensions enter image description here

3.使用扩展:选择 '{SHA}' || encode(digest('test','sha1'),'base64');

enter image description here