文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Winodows上使用PostgreSQL

Winodows上使用PostgreSQL

时间:2010-08-19  来源:orcspirit

好吧,我承认在windows上使用PostgreSQL是一件非常蛋疼的事。

一、先从启动PostgresSQL服务讲起

在linux平台下,用root用户启动postgres的服务是完全没问题的。这点可以从手册写的    su -c 'pg_ctl start -D /usr/local/pgsql/data -l serverlog' postgres 得到充分的验证。

在windows上可就不是那么一回事的。

且看我下面的过程:

(1)     一般地登录windows都是用Administrator用户,相当于root用户。

C:\Documents and Settings\Administrator>

pg_ctl -D "E:\Program Files\PostgreSQL\8.3\data"  -l logfile start

server starting

     提示我的是正在启动好吧,到了下一个提示符我以为已经启动起来了。

     结果:

              E:\Program Files\PostgreSQL\8.3\data>pg_ctl -D "E:\Program Files\PostgreSQL\8.3\data"  -l filelog  status

pg_ctl: no server running

(2)     无奈只好用postgres用户来启动。

切换到postgres用户 runas  /user:postgres cmd

打开了一个新命令提示符,具有postgres的权限。

 

嗯嗯嗯嗯~~~~~切换过来启动果然没问题….

 

 

二、在windows上Initdb

 

使用runas切换到postgres用户后执行

initdb -D /GreenAPP/data -E GBK

报告说:"GBK" 不是一个有效的服务器编码名字

又企图使用

initdb -D /GreenAPP/data --locale=zh_CN.GBK

报告说:无效的 locale 名字 "zh_CN.GBK"

并且说:数据库簇将带有 locale Chinese_People's Republic of China.936 初始化

 

windows里头没有locale的概念,用C吧:

initdb -E UTF8 --locale=C

 

 

三、再说在winodws上服务的问题

在windows上可以将postgresql的服务注册成一个可以随操作系统启动而启动的服务(通过services.msc可以查看),这样貌似可以解决用其他用户(比如Administrator)不能启动pg服务的问题。

如图:

 

C:\Documents and Settings\Administrator>pg_ctl register -N PostgreSQL8.3.3 -D "E:\Program Files\PostgreSQL\8.3\data"

注册成服务必须在管理员权限下执行。

 

 

双击该服务,可以配置能启动该服务的用户。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载