在Windows下将Postgresql安装成Windows服务

在Windows下怎么将postgresql安装成服务?
其实安装办法和mysql在Windows的下安装差不多,这里我们可以使用类unix下安装postgresql的类比思维,这里简单介绍一下。
在window里,不要直接用postmaster来启动,这样会出现:
不允许管理员权限的用户运行 PostgreSQL 服务器
服务器必须以一个非特权的用户身份启动以避免
可能的系统安全性问题. 参阅文档获取更多
有关如何正确启动服务器的信息.
的字样,postgresql提供一个pg_ctl.exe程序来完成安装windows的服务:
F:/usr/local/pgsql/bin/pg_ctl.exe runservice -N "PGSQL" -D "F:/usr/local/pgsql/data"
然后启动PGSQL服务:
<blockquote>net start PGSQL</blockquote>
提示成功,且打开任务管理器,发现postgres.exe进程在,但是直接使用psql时候出现
<blockquote>D:\>psql
psql: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/tmp/.s.PGSQL.5432"?</blockquote>
看样子是类似unix的socket的接口没有接上,那我们就想办法接上吧。
开始从postgresql的配置文件postgresql.conf 中没有发现tcpip_socket字样的接口,去官方文档一查,原来是postgresql从8.24版本以后抛弃了这个参数,一切使用 listen_addresses来控制。
于是修改postgresql.conf文件,将listen_addresses修改成 'localhost',并去掉前面的“#”号,片段如下:
listen_addresses = 'localhost'        # what IP address(es) to listen on;
                    # comma-separated list of addresses;
                    # defaults to 'localhost', '*' = all
                    # (change requires restart)
port = 5432                # (change requires restart)
max_connections = 100            # (change requires restart)
然后使用客户端程序psql进行连接:
D:\>psql -h localhost -U root -d cnangel
Welcome to psql 8.0.7, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

cnangel=# \l
        List of databases
   Name    |  Owner  | Encoding
-----------+---------+-----------
 QQ        | cnangel      | SQL_ASCII
 cnangel   | cnangel | SQL_ASCII
 postgres  | root    | SQL_ASCII
 root      | root    | SQL_ASCII
 template0 | root    | SQL_ASCII
 template1 | root    | SQL_ASCII
(6 rows)
cnangel=# alter database "QQ" owner to "QQ";
cnangel=# \l
        List of databases
   Name    |  Owner  | Encoding
-----------+---------+-----------
 QQ        | QQ      | SQL_ASCII
 cnangel   | cnangel | SQL_ASCII
 postgres  | root    | SQL_ASCII
 root      | root    | SQL_ASCII
 template0 | root    | SQL_ASCII
 template1 | root    | SQL_ASCII
(6 rows)
使用各种元命令和SQL语句无任何问题,一个Windows系统上架设的POSTGRESQL就完成了,我的POSTGRESPQL版本是postgresql v8.25 no install版本。

Monthly Archives

Pages

Powered by Movable Type 7.7.2

About this Entry

This page contains a single entry by Cnangel published on January 5, 2008 5:46 PM.

查以前雷傲的一个日历插件 was the previous entry in this blog.

Windows下对postgresql数据库接口进行编程 is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.