页面

2008-04-24

开始玩PostgreSQL

今天开始配置 postgresql 数据库,比预想的麻烦,主要是用户权限问题。

先对 postgresql 进行初始化,即运行 initdb 指令,在运行该指令前先建立数据库存储目录:/var/db。建好该目录后还得给后边运行 initdb 指令的用户指定权限(postgresql 不允许 root 用户执行相关指令):
chown uu /var/db
执行 initdb :
/usr/lib/postgresql/7.4/bin/initdb -E UTF-8 -D /var/db
初始化操作成功后,目前有个系统配置方面的 BUG :此时 postgresql 重启后应该读取的配置文件全在 /var/db 下,但实际上并不是。此时 postgresql 读取的配置文件位于 /var/lib/postgresql/7.4/main 下,执行指令 ls -l 可以看到有三个 p 打头的链接文件链的是 /etc/postgresql/7.4/main/ 下的同名文件。删除此三个链接文件,重新建立链接文件到 /var/db 目录下的配置文件,比如:
ln -s /var/db/postgresql.conf postgresql.conf
此后所作的所有有关配置文件下的更改都应是 /var/db 目录下的文件。重启 postgresql :
/usr/lib/postgresql/7.4/bin/postmaster -D /var/db
postgresql 提供一个默认超级用户(建立在操作系统级)postgres,开始只能通过该用户创建其他用户、创建数据库。这个用户的口令在系统配置文件中的定义是“*”,就是说你输什么都不行,必须切换到 root 用户再 su postgres 来使用或更改其口令。建立一个数据库用户 dbuser :
su postgres -c createuser
有了第一个用户,接下来就可以建数据库了:
postgres@unx$ createdb -O uu -e wooo 'database wooo'
更改用户口令可以在 psql 里做:
ALTER USER *username* WITH PASSWORD '*password*';
查看 postgresql 版本:
psql --version
删除数据库:
postgres@unx$ dropdb -U uu -i wooo

没有评论: