`
yhx0000
  • 浏览: 27769 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
文章分类
社区版块
存档分类
最新评论

PostgreSQLwindows免安装版的安装过程

阅读更多

<!-- @page { margin: 2cm } TD P { margin-bottom: 0cm } P { margin-bottom: 0.21cm } -->

Windows 安装postgreSQL noinstaller

解压到

d:\db_postgresql

设置

 

添加windows 的用户

postgre

 

使用命令行创建数据文件

d:\db_postgresql\pgsql\bin>initdb.exe -D d:\db_postgresql\pgsql\data -E UTF8 --locale=C

 

处理结果

D:\db_postgresql\pgsql\bin>initdb.exe -D d:\db_postgresql\pgsql\data -E UTF8 --locale=C

属于此数据库系统的文件宿主为用户 "Administrator".

此用户也必须为服务器进程的宿主.

数据库簇将带有 locale C 初始化.

The default text search configuration will be set to "english".

 

创建目录 d:/db_postgresql/pgsql/data ... 成功

creating subdirectories ... 成功

选择默认最大联接数 (max_connections) ... 100

selecting default shared_buffers/max_fsm_pages ... 32MB/204800

创建配置文件 ... 成功

d:/db_postgresql/pgsql/data/base/1 中创建 template1 数据库 ... 成功

initializing pg_authid ... 成功

initializing dependencies ... 成功

创建系统视图 ... 成功

loading system objects' descriptions ... 成功

创建字符集转换 ... 成功

creating dictionaries ... 成功

对内建对象设置权限 ... 成功

创建信息模式 ... 成功

清理数据库 template1 ... 成功

拷贝 template1 template0 ... 成功

copying template1 to postgres ... 成功

 

警告: 为本地连接启动了 "trust" 认证.

你可以通过编辑 pg_hba.conf 更改或你下

次运行 initdb 时使用 -A 选项.

 

Success. You can now start the database server using:

 

"postgres" -D "d:/db_postgresql/pgsql/data"

or

"pg_ctl" -D "d:/db_postgresql/pgsql/data" -l logfile start

 

其他用户启动方式

 

runas /user:yhx\postgres cmd

在新的窗口进入bin 目录输入

postgres.exe -D D:\db_postgresql\pgsql\data

 

 

注册服务方式

D:\db_postgresql\pgsql\bin>pg_ctl.exe register -D D:\db_postgresql\pgsql\data -N pgsql

 

启动

 

net start pgsql

net stop pgsql

 

 

创建数据库运行的系统用户

net user postgres postgres /add /expires:never /passwordchg:no

net localgroup users postgres /delete

创建数据库用户

D:\db_postgresql\pgsql\bin>createuser.exe pgsql

Shall the new role be a superuser? (y/n) y

 

D:\db_postgresql\pgsql\bin>

 

psql -d postgres

\l 列出所有的数据库.\du 查看当前的所有用户,

 

更换数据库中的系统用户

ALTER ROLE Administrator RENAME TO postgres

 

创建role

postgres=# CREATE ROLE "postgres" LOGIN PASSWORD 'neusoft';

CREATE ROLE

postgres=#

 

 

 

 

 

使用免费的客户端连接。

 

Createuser.exe 的功能 等效于 create role 语句

 

登录管理客户端后,可以查看如下各类信息

 

 

 

 

 

 

使用工具建立表空间

 

 

 

对应的sql

CREATE TABLESPACE "Neusoft" OWNER pgsql LOCATION E'D:\\db_postgresql\\pgsql\\newData';

COMMENT ON TABLESPACE "Neusoft" IS 'Haixin Yang is the creator.';

 

建立数据库

 

 

 

 

 

CREATE DATABASE "NeusoftDB"

WITH ENCODING='UTF8'

OWNER=postgres

TABLESPACE="Neusoft";

COMMENT ON DATABASE "NeusoftDB" IS 'DB created by Haixin Yang.';

 

执行完成后可以看到

 

创建表

 

 

 

 

对应的SQL

CREATE TABLE "HelloPostgreSQL"

(

) WITH (OIDS=FALSE)

 

TABLESPACE "Neusoft";

ALTER TABLE "HelloPostgreSQL" OWNER TO pgsql;

COMMENT ON TABLE "HelloPostgreSQL" IS 'Created by Haixin Yang.';

 

1
0
分享到:
评论
2 楼 keerbaby 2009-03-27  
不错,楼主辛苦了。

既然是在Windows环境下使用pg,除了初始化data目录和注册服务那里,其它命令行操作我都用GUI工具pgAdmin来替代了,简单快捷,何乐而不为呢。

为了制作安装包,两年前采用pg8.2免安装版来制作,多亏放开了系统管理员不能运行pg数据库这一限制,pg8.2、8.3免安装版本程序可以很方便的部署到系统。不过,我一般是Windows下建立了postgres用户后,直接先在dos窗口执行runas /user:postgres cmd 后面手工输入密码,之后初始化data目录,完成后,postgres已经是数据库的superuser了,不用再像楼主那样转换角色。之后注册成Windows系统服务,只要是本地用户登录后,启动即可。需要注意的是8.2以后版本注册服务时命令中勿加 "-U postgres" 选项,否则服务会被注册成postgres用户专用服务。

免安装版本程序另外有几个需要注意的地方:
1、pg_hba.conf中本机(localhost,一般是::1或127.0.0.1)访问数据库是信任状态(trust),如果要使用密码,通过程序或pgAdmin3连接数据库,需要注意postgres帐户的密码是否设置成功,没有设置为空且pg_hba.conf中本地的METHOD为md5的话,pgAdmin3登录时将无法连接上数据库,提交空密码pgAdmin不允许,输入了又是错的。别急,在trust状态下,用pgAdmin连接上数据库时,编辑"登入角色-postgres",输入新密码,确定即可。之后修改pg_hba.conf,设置本地的METHOD为md5,连接看看,是不是能登入了。修改pg_hba.conf不用重启服务器。

2、postgresql.conf中关于IP和postgres服务端口的配置是被注释了的,数据库服务器会只监听127.0.0.1及5432端口。一般情况下,在32位cpu,win2000至vista期间所有版本windows OS上使用都没有问题,一切使用正常。自己遇到过一起列外,就是在64为AMD cpu,Windows 2008操作系统中,如果不将postgresql.conf中关于IP和pg服务端口的配置的注释去掉,pgAdmin将无法连接。由于条件所限,并没有在更多环境测试过,如遇类似问题,可参照处理。

3、postgres数据库的GUI工具:pgAdmin 1.8.?系列版本的"备份"命令缺少一个选项参数"-i",导致备份数据库时会因服务器同pgAdmin的pg_dump版本不一致而失败。pgAdmin1.6.?系列版本没有这个问题,但如果用pgAdmin1.6.?系列的GUI配postgres8.3.?系列服务器,基本使用是无碍,就是操作GUI时会有一些错误,因为8.3中有变化,pgAdmin1.6.?有些菜单用到的数据在pg8.3中已经没有了。经官方答复,这个问题已经在pgAdmin下一个版本即1.10.X处理了,备份命令加上了"-i"选项,不过那个目前还是beta版的。
1 楼 lzy.je 2009-02-20  
呜呼呼,学习~~

相关推荐

Global site tag (gtag.js) - Google Analytics