59519751 发表于 2016-11-20 09:03:07

PostgreSQL 学习之——安装篇(Windows XP)

  真没想到在第一篇日志写了两年多以后还会来这些写第二篇,也许是最近开始学习研究JAVA之后,又经常订阅一些JAVAEYE的博客,所以还能记得这里还有我的“二亩三分地”一直闲着。既然一直惦记着,不如干脆行动起来,在这块“土地”上种点“粮食”。那么今天就写点东西吧,不过不是写JAVA,而是一个数据库系统,postgreSQL。
  记得几年前曾经安装过postgreSQL,好像是8.1版,还专门下载过中文文档,不过仅仅是尝了个鲜就不再使用了。前两天发现我的机子里还有,于是就到官网上下载了最新的8.4.1-1版。不过和上次使用安装版不一样的是,我这次下载的是非安装版,一个ZIP文件。解压缩后放在了 D:\Development\postgresql-8.4.1-1 目录下,然后开始了我的学习如何配置和启动 postgeSQL 的过程。
  查看了doc文件夹中的文档,也到网上搜索了一些文章,终于找到了一点感觉。要使用postgresql创建数据库,工作大致可分为三个步骤:初始化数据库存储区域(这个区域被称为 database cluster ),接着启动数据库服务器(也可以注册为系统服务后启动),最后就可以创建数据库并进入数据库进行各种SQL操作了。要做这几步操作,需要执行postgresql安装目录中bin文件夹中的一些命令,为了方便使用这些命令,可以设置PATH环境变量,不过我发现以前安装的postgresql目录中有一个pgenv.bat,是用于设置环境变量的,我的新版本却没有这个文件,于是我把这个文件拷贝过来,并作了相应的修改,这个批处理文件的内容如下:

set PGHOME=D:\Development\postgresql-8.4.1-1
set PATH=%PGHOME%\bin;%path%
set PGHOST=localhost
set PGLIB=%PGHOME%\lib
set PGDATA=F:\sqldata\pgdata
   其中 PGDATA 是 database cluster 的存储路径,这个路径也可以不设置,而在创建 database cluster 的时候指定。先进入命令行界面执行这个批处理,就可以做下面的工作了。
  首先建立 database cluster,在命令行输入:

initdb -D F:\sqldata\pgdata --no-locale -U administrator
   其中-D选项用于指定database cluster的存储路径,这个路径必须已经存在,如果已经设置了PGDATA环境变量这里可以省略。--no-locale选项等同于--locale=C,即不使用区域,本来想用--locale=chs,即使用“简体中文”,不过后面出现了编码问题,所以不用了。-U administrator 指定超级用户的名字。这里没有指定字符编码,默认使用SQL_ASCII,如果想指定为UTF8可以使用选项 --encoding=utf8 或 -E utf8,不过我用这个选项后在插入汉字时出现了错误,所以干脆不使用了,这个问题这里暂且不提。如果命令在执行过程中没有任何错误,那么执行完毕后可以进行下一步了。
  第二步启动数据库服务器,输入:

pg_ctl -D F:/sqldata/pgdata start
  使用postgres命令也可以启动数据库服务器,不过该命令必须运行在postgres帐户下,所以我选择了使用 pg_ctl。如果想停止或重新启动数据库服务器,可以输入:

pg_ctl stop
pg_ctl restart -D F:/sqldata/pgdata

   还可以把数据库服务器注册成为系统服务,注册和反注册的命令如下:

pg_ctl register -N pgsql -U <服务帐户名> -P <帐户密码> -D F:/sqldata/pgdata
pg_ctl unregister -N pgsql
  这里 -N pgsql 指定服务的名称, -U 和 -P 指定服务的帐户名和密码。如果没有什么问题出现,那么接下来可以创建数据库了。
  第三步创建数据库,在命令行输入:

createdb --username=administrator mydb
   这是创建一个名为mydb的数据库,删除数据库使用dropdb命令。创建完毕后,就可以使用psql命令连接到数据库了。命令如下:

psql --username=administrator mydb
psql (8.4.1)
Type "help" for help.
mydb=#
  当出现最后一行“mydb=#”这样的提示符的时候,就说明已经成功登录到了数据库中,可以执行各种SQL命令了。
  这里需要说明的是,以前版本的postgresql不允许使用具有管理员权限的帐户启动服务器,这是为了安全着想,但是从8.2版开始放开了这个限制。对于我来说现在还处于初学者的阶段,所以暂时没有考虑这个问题。
  至此,postgresql就在我的电脑上“安家落户”了,下面就可以慢慢学习了,不过我碰到的第一个问题就是,无法插入汉字到数据表中,这是我在使用“chs”作为区域,"utf8"作为编码时出现的,所以我后来在尝试创建 database cluster 时并没有使用区域,也没有指定编码,反而可以正常地插入汉字了,而且排序好像也没出什么问题,不知道这是为什么。
页: [1]
查看完整版本: PostgreSQL 学习之——安装篇(Windows XP)