技术开发 频道

使用port基本安装 PostgreSQL 笔记

  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)

$ su -
$ 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)

$ su -
$ 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 系统资料库

$ su
$
/usr/local/etc/rc.d/postgresql initdb
$
exit

  5. 初始化系统资料库后,便可以第一次启动 postgresql

$ su
$
/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=# \password pgsql
postgres
=#\q

  修改密码工作还有下半部份,便是修改 /usr/local/pgsql/data/pg_hba.conf

$ su -
$ cd
/usr/local/pgsql/data
$ vi pg_hba.conf
$
exit

  把档案中的 trust 改为 md5,强迫 postgres 必须做密码登入

# TYPE  DATABASE       USER     CIDR-ADDRESS          METHOD

# "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

$ su -
$
/usr/local/etc/rc.d/postgresql restart
$
exit

  成功了,现在登入 postgresql 必须要输入密码

0
相关文章