在OpenBSD环境使用PostgreSQL
有两种不同的帐户涉及与PostgreSQL的工作:
一个是OpenBSD的userid,
另一种是如'_postgresql',类似userid的文件, 这是PostgreSQL的一部分。
另外,通常名为'Postgres'的账户,并不是 OpenBSD的用户名,
也就是说你不会在/etc/passwd文件中找到它,只是一个帐户
内部的数据库系统。'Postgres'帐户被称为数据库管理员
帐户(数据库管理员)并且是被创建好了的,当一个新的数据库要初始化时使用initdb命令。
如果你是第一次安装PostgreSQL,首先你必须创建默认数据库。
在下面的例子中,我们将
在/ var / postgresql/中创建一个数据库帐户'Postgres'和MD5认证数据。
我们将提示输入密码,以保护数据库管理员帐户:
# su - _postgresql
$ mkdir /var/postgresql/data
$ initdb -D /var/postgresql/data -U postgres -A md5 -W
强烈建议您不要使用Postgres的数据库管理员帐户
除了创建更多的 user 或 databases 或 管理性质的任务。
使用PostgreSQL的权限系统,以确保一个数据库只有programs/users具有修改权限。
请参阅更多信息PostgreSQL的网站,特别是当您要升级现有的数据库安装。
-自动启动和停止-
要在开机时启动PostgreSQL和在关机时关闭它,添加以下行到/etc/rc.local中和/etc/rc.shutdown,
分别是:
/etc/rc.local:
if [ -x /usr/local/bin/pg_ctl ]; then
echo -n ' postgresql'
su -l _postgresql -c "nohup /usr/local/bin/pg_ctl start \
-D /var/postgresql/data -l /var/postgresql/logfile \
-o '-D /var/postgresql/data' >/dev/null"
fi
/etc/rc.shutdown:
if [ -f /var/postgresql/data/postmaster.pid ]; then
su -l _postgresql -c "/usr/local/bin/pg_ctl stop -m fast \
-D /var/postgresql/data"
rm -f /var/postgresql/data/postmaster.pid
fi
网络连接和调整
要允许TCP连接(和其他选项),编辑该文件:
/var/postgresql/data/postgresql.conf
并编辑pg_hba.conf的(在同一目录)适当修改,让你的网络连接。
SysV内核指针的GENERIC默认大小不是足够大,不足以让数据库满载。
服务器运行这样一个资料库,
你可以在/ etc / sysctl.conf中以下内容加入最低限制:
kern.seminfo.semmni=256
kern.seminfo.semmns=2048
在i386下为了满足的连接(“250)大量,您可能还需要增加最大共享内存段大小,
尝试:
kern.shminfo.shmmax=50331648 # this is 48MB.
# default on i386 is 32MB
# other archs will vary
这些数字的调整应该取决于系统的使用。您也将需要调整在postgresql.conf文件中的值增加后台连接数量。
默认情况下,_postgresql用户和postmaster还有后台
程序在login时以"deamon"类型运行。在一个繁忙的服务器,
最好把_postgresql用户和进程设置成他们自己的login类型和调整资源,如更加开放文件描述符等。
例如,加入这些到login.conf中文件中:
postgresql:\
:openfiles-cur=768:\
:tc=daemon:
如果有必要,重建login.conf.db文件:
# cap_mkdb /etc/login.conf
用vipw或chsh改变login类型。
超过250的连接,这些数字应该要增加。请报告任何改动和经验
维护人员,以便我们能够更新这方面的未来版本的文件。
Kerberos认证
默认情况下,PostgreSQL服务器需要它自己的krb5.keytab文件。它
应当具有可读性只对_postgresql用户。默认位置 该文件是
'/ etc/postgresql/krb5.keytab',但可调通过设置postgresql.conf文件中的krb_server_keyfile行。
生成keytab:
# mkdir /etc/postgresql
# ktutil -k /etc/postgresql/krb5.keytab get postgres/server.domain
# chown _postgresql:_postgresql /etc/postgresql/krb5.keytab
客户端/前端
许多应用程序可以马上使用PostgreSQL数据库。为方便
管理PostgreSQL数据库,两个客户端是值得注意的:
www/phppgadmin 基于网络的用户界面,它使用的是PHP5
databases/pgadmin3 图形用户界面,它使用的是wxWidgets