Tuesday, August 22, 2006

PostgreSQL

好多人都曾和我说过,MySQL cannot scale。OK, fine, but you know how it is -- I've never had time (or excuse) to learn it up. Well now I do. Didier 大力推荐(并要求!)我用 PostgreSQL 来实现一个 LexicalBase。于是乎我就 synaptic 了一堆和 PostgreSQL 有关的宏包。其实是很容易省事的-要不是理大的network connection 真的很王八蛋的话。

So, apt-get 了之后,最简单的登录方式是:

$ su postgres (用 root password)
$ createuser <user> (最好可以用 Linux 的用户名)
$ exit
$ psql -U <user>

再用 Linux 用户名的密码,就可以登录了。

但若是要一个非 Linux 用户名的 PostgreSQL 帐号呢?

先以 superuser 身份登录吧:

$ su postgres
$ psql
=> CREATE USER psql_admin [SUPERUSER] CREATEDB CREATEROLE PASSWORD 'password'

SUPERUSER, CREATEDB, CREATEROLE 都是 optional 的。手册曰:最好是可以新建一个非 superuser,但可以 create database, create role 的帐号,以执行日常管理。普通帐号则用

=> CREATE USER webuser PASSWORD 'webpassword'

就可以了,而这种非 Linux 用户帐号的登录方式是:

$ psql -U webuser -h localhost -W dbname

新建资料库:

$ createdb -O <owner_name> <newdb>
=> CREATE DATABASE lexicalbase OWNER lexical (必须在 superuser 或 member role 下执行)

No comments: