用户工具

站点工具


doc:d:pgsql_running

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
doc:d:pgsql_running [2011/04/11 00:11]
dotyao
doc:d:pgsql_running [2011/04/11 00:22] (当前版本)
dotyao
行 1: 行 1:
 +====== 在 FreeBSD 上运行PostgreSQL数据库 ======
 +
 +===== 概要=====
 +
 + * 在 FreeBSD 上运行PostgreSQL数据库
 +
 +===== 相关链接 =====
 +  *[[gehaowu@gmail.com|有不恰当的地方欢迎指正By:​ghw]]
 +  * [[http://​jasonk2600.wordpress.com/​2010/​01/​11/​installing-postgresql-on-freebsd/​|Installing PostgreSQL on FreeBSD]]
 +  * [[http://​blog.csdn.net/​joliny/​archive/​2008/​03/​20/​2199335.aspx|优化你的PostgreSQl(对方哪转的我就不清楚了)]]
 +
 +
 +
 +  * [[http://​wiki.freebsdchina.org/​doc/​d/​pgsql_hot_standby | PostgreSQL 9 Hot Standby 实践]]
 +
 +===== 配置FreeBSD内核=====
 +
 +<​code>​
 +  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
 +</​code>​
 +
 +===== 从Ports安装PostgreSQL=====
 +
 +<​code>​
 +#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"​
 +</​code>​
 +
 +
 +
 +===== 配置PostgreSQL =====
 +
 +往rc.conf里增加启动项
 +<​code>​
 +postgresql_enable="​YES"​
 +postgresql_data="/​usr/​pgsql" ​            #​这里写你中间的数据库存放路径
 +postgresql_class="​postgres"​
 +#​postgresql_initdb_flags="​--encoding=utf-8 --lc-collate=C" ​ #​增加这行,下面就不会提示找不到合适的编码设置了。
 +</​code>​
 +
 +初始化数据库
 +<​code>​
 +# /​usr/​local/​etc/​rc.d/​postgresql initdb
 +如果没有设置postgresql_initdb_flags,建议 initdb -D /​usr/​local/​pgsql/​data --locale=C -E UTF8 
 +</​code>​
 +终端回显
 +<​code>​
 +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# ​
 +
 +</​code>​
 +
 +运行PostgreSQL服务
 +<​code>​
 +# /​usr/​local/​etc/​rc.d/​postgresql start
 +</​code>​
 +
 +修改管理员密码
 +<​code>​
 +#psql -U pgsql postgres
 +postgres=# \password
 +postgres=#​\q
 +</​code>​
 +
 +允许其他非本地IP链接
 +<​code>​
 +vi /​usr/​pgsql/​postgresql.conf
 +   ​listen_addresses = '​*'​
 +</​code>​
 +
 +修改pg_hba.conf文件里的文件验证方式 ,这个文件的位置是你数据库所在的目录,也就是rc.conf里配置的那个
 +修改用户密码加密方式
 +<​code> ​                
 +# 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
 +</​code>​
 +重启服务
 +<​code>​
 +#/​usr/​local/​etc/​rc.d/​postgresql restart
 +</​code>​
 +
 +安装phpPgAdmin,网页版PGSQL管理工具
 +<​code>​
 +    #cd /​usr/​ports/​databases/​phppgadmin
 +    #make install clean
 +    #ln -s /​usr/​local/​www/​phpPgAdmin /​usr/​local/​www/​data/​
 +</​code>​
 +配置phpPgAdmin,修改/​usr/​local/​www/​phpPgAdmin/​conf/​config.inc.php文件的第88行true改成false
 +<​code>​
 +$conf['​extra_login_security'​] = false;
 +</​code>​
 +
 +<​code>​
 +$conf['​servers'​][0]['​host'​] = '';​
 +</​code>​
 +修改postgresql服务器的ip地址
 +
 +通过http://​localhost/​phppgadmin,登录,管理PostgreSQL了
 +
  
/data/vhosts/wiki-data/pages/doc/d/pgsql_running.txt · 最后更改: 2011/04/11 00:22 由 dotyao