用户工具

站点工具


doc:d:pgsql_running

在 FreeBSD 上运行PostgreSQL数据库

概要

* 在 FreeBSD 上运行PostgreSQL数据库

相关链接

配置FreeBSD内核

  options         SYSVSHM
  options         SYSVSEM
  options         SYSVMSG
  options         SHMMAXPGS=65536
  options         SEMMNI=40
  options         SEMMNS=240
  options         SEMUME=40
  options         SEMMNU=120
  装个软件,还需要修改内核,太折腾了,在/etc/sysctl.conf增加几行即可:
  kern.ipc.somaxconn=32768
  kern.ipc.shmall=32768
  kern.ipc.shmmax=134217728
  kern.ipc.semmap=256

从Ports安装PostgreSQL

#cd /usr/ports/databases/postgresql90-server/ && make install

或者如果需要plperl过程语言模块
# make BATCH=yes CONFIGURE_ARGS+="--prefix=/usr/local" CONFIGURE_ARGS+="--with-perl" install clean
不知道为什么,当使用CONFIGURE_ARGS+=的时候,默认的prefix=/usr/local被修改了,或者参数无法向下层传递,安装的client和server的prefix不是同一个目录
因此只能显式的指定CONFIGURE_ARGS+="--prefix=/usr/local"

配置PostgreSQL

往rc.conf里增加启动项

postgresql_enable="YES"
postgresql_data="/usr/pgsql"             #这里写你中间的数据库存放路径
postgresql_class="postgres"
#postgresql_initdb_flags="--encoding=utf-8 --lc-collate=C"  #增加这行,下面就不会提示找不到合适的编码设置了。

初始化数据库

# /usr/local/etc/rc.d/postgresql initdb
如果没有设置postgresql_initdb_flags,建议 initdb -D /usr/local/pgsql/data --locale=C -E UTF8 

终端回显

tomato# /usr/local/etc/rc.d/postgresql initdb
属于此数据库系统的文件宿主为用户 "pgsql".
此用户也必须为服务器进程的宿主.
数据库簇将带有一下 locales 初始化
  COLLATE:  C
  CTYPE:    zh_CN.UTF-8
  MESSAGES: zh_CN.UTF-8
  MONETARY: zh_CN.UTF-8
  NUMERIC:  zh_CN.UTF-8
  TIME:     zh_CN.UTF-8
initdb: 无法为语言环境"zh_CN.UTF-8" 找到合适的编码配置
缺省的文本搜索配置将会被设置到"simple"

创建目录 /usr/pgsql ... 成功
正在创建子目录 ... 成功
选择默认最大联接数 (max_connections) ... 100
选择默认共享缓冲区大小 (shared_buffers) ... 32MB
创建配置文件 ... 成功
在 /usr/pgsql/base/1 中创建 template1 数据库 ... 成功
初始化 pg_authid ...  成功
初始化dependencies ... 成功
创建系统视图 ... 成功
正在加载系统对象描述 ... 成功
创建字符集转换 ... 成功
正在创建字典 ... 成功
对内建对象设置权限 ... 成功
创建信息模式 ... 成功
loading PL/pgSQL server-side language ... 成功
清理数据库 template1 ... 成功
拷贝 template1 到 template0 ... 成功
拷贝 template1 到 template0 ... 成功

警告: 为本地连接启动了 "trust" 认证.
你可以通过编辑 pg_hba.conf 更改或你下
次运行 initdb 时使用 -A 选项.

成功. 您现在可以用下面的命令运行数据库服务器:

    /usr/local/bin/postmaster -D /usr/pgsql
或者
    /usr/local/bin/pg_ctl -D /usr/pgsql -l logfile start

tomato# 

运行PostgreSQL服务

# /usr/local/etc/rc.d/postgresql start

修改管理员密码

#psql -U pgsql postgres
postgres=# \password
postgres=#\q

允许其他非本地IP链接

vi /usr/pgsql/postgresql.conf
   listen_addresses = '*'

修改pg_hba.conf文件里的文件验证方式 ,这个文件的位置是你数据库所在的目录,也就是rc.conf里配置的那个 修改用户密码加密方式

                 
# TYPE  DATABASE        USER            CIDR-ADDRESS            METHOD

#"local" is for Unix domain socket connections only
local   all             pgsql                                   md5

# "local" is for Unix domain socket connections only
local   all             pgsql                                     md5
# IPv4 local connections:
host    all             pgsql             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 trust

重启服务

#/usr/local/etc/rc.d/postgresql restart

安装phpPgAdmin,网页版PGSQL管理工具

    #cd /usr/ports/databases/phppgadmin
    #make install clean
    #ln -s /usr/local/www/phpPgAdmin /usr/local/www/data/

配置phpPgAdmin,修改/usr/local/www/phpPgAdmin/conf/config.inc.php文件的第88行true改成false

$conf['extra_login_security'] = false;
$conf['servers'][0]['host'] = '';

修改postgresql服务器的ip地址

通过http://localhost/phppgadmin,登录,管理PostgreSQL了

/data/vhosts/wiki-data/pages/doc/d/pgsql_running.txt · 最后更改: 2011/04/11 00:22 由 dotyao