4. 在 pgsql.home.net 修改 postgreSQL Database 预设为中文 locate
本人使用繁体中文,选用 zh_TW.UTF-8 的 locate。请参考 postgresql 安装说明,它有提及如何改变 locate 的方法
$ pkg_info -D postgresql-server-8.4.1
我使用增加一个 login class 的方法,去改变 locate 值,步骤为
i) 修改 /etc/login.conf
ii) 修改 /etc/rc.conf
i)
$ vi /etc/login.conf
$ exit
在档案中某空白地方增加以下描述
# postgresql class
#-------------------
pgsql:\
:lang=zh_TW.UTF-8:
:setenv=LC_COLLATE=C:\
:tc=default:
修改完 /etc/login.conf 必顺执行一次 cap_mkdb 使之生效
$ cap_mkdb /etc/login.conf
ii)
$ vi /etc/rc.conf
$ exit
在档案中某空白地方增加以下描述
# postgresql settings
#----------------------
postgresql_enable="YES"
postgresql_data="/usr/local/pgsql/data"
postgresql_flags="-w -s -m fast"
postgresql_initdb_flags="--encoding=utf-8 --lc-collate=C"
postgresql_class="pgsql"
注意 /etc/rc.conf 中的 postgresql_class 值是对应 /etc/login.conf 名称
4. 在 pgsql.home.net 初始化 postgres 系统资料库
$ /usr/local/etc/rc.d/postgresql initdb
$ exit
5. 初始化系统资料库后,便可以第一次启动 postgresql
$ /usr/local/etc/rc.d/postgresql start
$ exit
6. 使用 psql 修改 pgsql 的密码
在 FreeBSD port 的 postgresql,它的 superuser 叫 pgsql,并不是 postgres
初始化的资料库,pgsql 点认值是没有密码,在 localhost 没有密码登入,任何人皆可以
用 pgsql 登入 postgresql 为所欲为。因此,第一件事为 pgsql 设密码,使用 psql
便可 $ psql -U pgsql postgres
在 psql 画面输入命令修改密码然后离开 psql
postgres=#\q
修改密码工作还有下半部份,便是修改 /usr/local/pgsql/data/pg_hba.conf
$ cd /usr/local/pgsql/data
$ vi pg_hba.conf
$ exit
把档案中的 trust 改为 md5,强迫 postgres 必须做密码登入
# "local" is for Unix domain socket connections only
local all pgsql md5
# IPv4 local connections:
host all pgsql 127.0.0.1/32 md5
host all pgsql 192.168.1.3/32 md5
host all all 192.168.1.0/24 reject
# IPv6 local connections:
#host all all ::1/128 trust
仔细的 pg_hba.conf 权限语法请自行参考资料
修改了 pgsql 的密码 和 pg_hba.conf 设定后,必须重新启动 postgresql
$ /usr/local/etc/rc.d/postgresql restart
$ exit
成功了,现在登入 postgresql 必须要输入密码