今天去招聘会无意中发现一个IT单位要求会用PostgreSQL数据库的,以前对这个数据库有点印象,但没用过,决定今天回来安装一下试试看。最起初我下载了一个win安装版的,但装的时候出现如下的错误:
[img]http://album.sina.com.cn/pic/4a6ae97502000dyv[/img]
大概看了下他的说明,把环境变量path中的cygwin的去掉即把这个错误解决了(前段时间学ror15分钟建blog的视频的时候装过cygwin这个软件,当时为了方便才把cygwin的bin目录添加进path的,现在又得去掉,哎~~~),一路装下去以后本以为好了,但装好的软件不可以用,而且PostgreSQL文件夹下的8.2文件夹删不掉,说是拒绝访问,后来卸了在安全模式下也删不掉,感觉也没多大影响,空了再解决这个问题吧。
后来找到[url=http://lamp.linux.gov.cn/PostgreSQL/PostgreSQL_FAQ_windows.html#2.1]这篇文章[/url],才总算把PostgreSQL顺利装上并且可以使用,方法是这样的:
先去[url=http://www.postgresql.org/]官方网站[/url]下载它的免安装版本,即后面这样形式的文件(binaries-no-installer.zip),下好以后先解压文件,假设解压后的目录是:D:\software\PostgreSQL\pgsql(下面使用"$PG"表示该目录)。
在"$PG"目录下创建一个rootpass.txt文件,内容为数据库的超级用户密码。
准备工作到此结束,下面的步骤以管理员身份执行。
移动DLL文件[8.1.5及以上版本不需要这一步骤]:
cd $PG
move /y lib\comerr32.dll bin\
move /y lib\krb5_32.dll bin\
move /y lib\libeay32.dll bin\
move /y lib\libiconv-2.dll bin\
move /y lib\libintl-2.dll bin\
move /y lib\libpq.dll bin\
move /y lib\pthreadGC2.dll bin\
move /y lib\ssleay32.dll bin\
添加新的postgres用户,并将密码设为:p
net user postgres p /ADD /EXPIRES:NEVER /PASSWORDCHG:NO
net localgroup users postgres /delete
创建data目录并设置访问权限:
md data
cacls . /T /E /P postgres:R
cacls data /T /E /P postgres:C
初始化PostgreSQL数据库,切换用户时需要手动输入postgres用户的密码:p
runas /noprofile /env /user:postgres "bin\initdb -D data -E EUC_CN --locale=\"Chinese_People's Republic of China.936\" -A md5 -U root --pwfile=rootpass.txt"
这样就安装好了。需要说明的是数据库默认编码为:EUC_CN(GB2312),区域设置为:zh_CN.GBK,数据库超级用户名为:root,密码为rootpass.txt文件内容,使用md5认证。
以后可以使用:
runas /noprofile /env /user:postgres "$PG\bin\pg_ctl start -w -D $PG\data"
启动PG,使用:
$PG\bin\pg_ctl stop -D $PG\data -m smart
关闭PG。
如果大家觉得启动它麻烦的话,可以象我这样建立一个批处理文件命名为:Start_PostgreSQL.bat,内容如下:
cd D:/software/PostgreSQL/pgsql
runas /noprofile /env /user:postgres "D:\software\PostgreSQL\pgsql\bin\pg_ctl start -w -D D:\software\PostgreSQL\pgsql\data"
Stop_PostgreSQL.bat,内容为:
cd D:/software/PostgreSQL/pgsql/bin
pg_ctl stop -D D:\software\PostgreSQL\pgsql\data -m smart
到此,我们的问题已经解决,具体的一些关于PostgreSQL的问题大家可以参照着看我找的那篇文章去学习:)
[img]http://album.sina.com.cn/pic/4a6ae97502000dyv[/img]
大概看了下他的说明,把环境变量path中的cygwin的去掉即把这个错误解决了(前段时间学ror15分钟建blog的视频的时候装过cygwin这个软件,当时为了方便才把cygwin的bin目录添加进path的,现在又得去掉,哎~~~),一路装下去以后本以为好了,但装好的软件不可以用,而且PostgreSQL文件夹下的8.2文件夹删不掉,说是拒绝访问,后来卸了在安全模式下也删不掉,感觉也没多大影响,空了再解决这个问题吧。
后来找到[url=http://lamp.linux.gov.cn/PostgreSQL/PostgreSQL_FAQ_windows.html#2.1]这篇文章[/url],才总算把PostgreSQL顺利装上并且可以使用,方法是这样的:
先去[url=http://www.postgresql.org/]官方网站[/url]下载它的免安装版本,即后面这样形式的文件(binaries-no-installer.zip),下好以后先解压文件,假设解压后的目录是:D:\software\PostgreSQL\pgsql(下面使用"$PG"表示该目录)。
在"$PG"目录下创建一个rootpass.txt文件,内容为数据库的超级用户密码。
准备工作到此结束,下面的步骤以管理员身份执行。
移动DLL文件[8.1.5及以上版本不需要这一步骤]:
cd $PG
move /y lib\comerr32.dll bin\
move /y lib\krb5_32.dll bin\
move /y lib\libeay32.dll bin\
move /y lib\libiconv-2.dll bin\
move /y lib\libintl-2.dll bin\
move /y lib\libpq.dll bin\
move /y lib\pthreadGC2.dll bin\
move /y lib\ssleay32.dll bin\
添加新的postgres用户,并将密码设为:p
net user postgres p /ADD /EXPIRES:NEVER /PASSWORDCHG:NO
net localgroup users postgres /delete
创建data目录并设置访问权限:
md data
cacls . /T /E /P postgres:R
cacls data /T /E /P postgres:C
初始化PostgreSQL数据库,切换用户时需要手动输入postgres用户的密码:p
runas /noprofile /env /user:postgres "bin\initdb -D data -E EUC_CN --locale=\"Chinese_People's Republic of China.936\" -A md5 -U root --pwfile=rootpass.txt"
这样就安装好了。需要说明的是数据库默认编码为:EUC_CN(GB2312),区域设置为:zh_CN.GBK,数据库超级用户名为:root,密码为rootpass.txt文件内容,使用md5认证。
以后可以使用:
runas /noprofile /env /user:postgres "$PG\bin\pg_ctl start -w -D $PG\data"
启动PG,使用:
$PG\bin\pg_ctl stop -D $PG\data -m smart
关闭PG。
如果大家觉得启动它麻烦的话,可以象我这样建立一个批处理文件命名为:Start_PostgreSQL.bat,内容如下:
cd D:/software/PostgreSQL/pgsql
runas /noprofile /env /user:postgres "D:\software\PostgreSQL\pgsql\bin\pg_ctl start -w -D D:\software\PostgreSQL\pgsql\data"
Stop_PostgreSQL.bat,内容为:
cd D:/software/PostgreSQL/pgsql/bin
pg_ctl stop -D D:\software\PostgreSQL\pgsql\data -m smart
到此,我们的问题已经解决,具体的一些关于PostgreSQL的问题大家可以参照着看我找的那篇文章去学习:)