postgresql的安装
最近给某电信公司做了个项目,把原oracle库迁移到EnterpriseDB之PPAS上,拿回oracle的dump文件忙乎了一圈,想把安装迁移过程写一下,就从网上把postgresql的各种安装过程搬过来,凑个系列。
安装PostgreSQL数据库不一定需要root用户权限,普通用户也可以。安装方式有多种,一种是编译安装,一种是二进制安装包安装,还有各种linux系统的包安装。
一. 源码编译安装
总体流程:
./configure
gmake su gmake install adduser postgres mkdir /usr/local/pgsql/data chown postgres /usr/local/pgsql/data su - postgres /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 & /usr/local/pgsql/bin/createdb test /usr/local/pgsql/bin/psql test
2.安装的前提条件
要求一:
要求有GNUmake,版本要大于等于 3.76.1,检查gmake的方法如下:
gmake --version
要求二:
编译器要求是兼容ISO/ANSIC的编译器,遵从C89标准。
如果使用gcc,这两个条件都能支持。而gcc支持大多数的UNIX环境,如Linux、AIX、HPUX、Solaris等。
要求三:
由于源代码包是.tar.gz或.tar.bz2的格式,所以要求平台下有能解压缩源代码包的tar和gzip工具。
要求四(非强制):
PostgreSQL默认是使用GNUReadline库支持在psql的命令行中可以使用光标键(↑↓)翻出历史命令。当然如果没有GNU Readline库的话,需要增加without-readline选项到./configure命令后,当然这样做后就失去了使用光标键(↑↓)翻出历史命令的功能。也可以使用libedit库(BSD-licensed)提供类似的功能,这时需要在.configure后增加--with-libedit-preferred选项。常用的Linux发行版本默认安装了时都安装了GNU Readline库。下面的命令检查是否安装了Readline库:
[root@osdba /usr/src/postgresql-8.4.3]#rpm -qa |grep readline
readline-5.2-13.fc9.i386
要求五(非强制):
PostgreSQL默认使用zlib压缩库,主要是pg_dump和pg_restore这两个导入导出工具使用zlib压缩库,指定配置选项--without-zlib可以不使用zlib库,当然这样pg_dump和pg_restore就没有了压缩功能了。
要求六(非强制):
主要你需要服务端语言如PL/Perl,PL/PythonPL/Tcl,当然你需要安装Perl、Python、Tcl。
如果你需要PostgreSQL能提示中文,你需要实现GettextAPI。
3.下载PostgreSQL源码包
到www.postgresql.org网站上下载源码包,然后解压到一个目录下:
gunzip postgresql-8.4.3.tar.gz
tar xvf postgresql-8.4.3.tar
如果在Linux下,可以一步解压:
tar zxvfpostgresql-8.4.3.tar.gz
如果是.tar.bz2包:
tar jxvf postgresql-8.4.3.tar.bz2
4.安装过程
⑴ ./configure
后面可以跟我们前面讲过的一些选项,如--with-libedit-preferred:
./configure--with-libedit-preferred
后面可以跟很多的选项,具体可以参见PostgreSQL提供的官方手册,这里介绍几个常用的选项:
--prefix=PREFIX:指定安装PostgreSQL的安装目前,如果没有指定,则安装到/usr/local/pgsql目录下。
--with-pgport=NUMBER:指定PostgreSQL的监听端口,默认为5432
--with-wal-segsize=SEGSIZE:指定WAL日志文件的大小。
--with-wal-blocksize=BLOCKSIZE:指定WAL日志的块大小。
--enable-thread-safety:允许客户端的库函数是线程安全的。
执行的时候可能报:
configure: error: readline library not found
这是因为readline没有安装,只要安装这个库就可以了,如在ubuntu10.04下可以:
aptitude install libreadline6-dev
⑵ 编译源代码
gmake
有可能你的机器的没有gmake命令,而make就是gnu make,这时运行make编译:
make
⑶安装编译生成的文件
gmake install
如果仅安装客户端程序:
gmake -C src/bin install gmake -C src/include install gmake -C src/interfaces install gmake -C doc install
如果是在windows平台,可以注册event log:
regsvr32pgsql_library_directory/pgevent.dll
⑷ 卸载
gmake uninstall
5.设置环境变量和共享库路径和可执行文件路径
可以把下面的内容添加到UNIX用户的~/.bash_profile或~/.profile文件中,或如果对所有用户生效,可以添加到/etc/profile文件中:
在Bourne shells (sh,ksh,bash,zsh):
LD_LIBRARY_PATH=/usr/local/pgsql/lib export LD_LIBRARY_PATH
PATH=/usr/local/pgsql/bin:$PATH export PATH
MANPATH=/usr/local/pgsql/man:$MANPATH export MANPATH
or incshortcsh: setenv LD_LIBRARY_PATH /usr/local/pgsql/lib
set path = ( /usr/local/pgsql/bin $path )
在BSD/OS,Linux,orSunOS 4平台下,使用root用户执行: /sbin/ldconfig /usr/local/pgsql/lib
On FreeBSD,NetBSD,and OpenBSD:
/sbin/ldconfig -m /usr/local/pgsql/lib
6.安装contrib目录下的一些工具
源代码目录下有一个contrib目录,是一些第三方组织贡献出来的一些工具代码,这些工具在日常维护中也很有用,建议安装上。
cd /usr/src/postgresql-8.4.3/contrib
make
make install
7.创建数据库
建postgres用户:
useradd -m -u 701 postgres
建postgres数据库的目录,假设数据库建在/opt/pgdata目录下:
mkdir /opt/pgdata
chown postgres:postgres /opt/pgdata
在postgres用户下的.bash_profile文件中添加如下内容,方便以后启动数据库和关闭数据库:
su - postgres
export PGDATA=/opt/pgdata
alias pgstart='pg_ctl -D $PGDATA start' alias pgstop='pg_ctl kill INT `head -1 $PGDATA/postmaster.pid`'
如果你要建utf8的数据库,注意设置LANG环境变量为utf8的,把下面的内容加到.bash_profile文件中:
export LANG=en_US.utf8
初使化数据库目录:
su - postgres
/usr/local/pgsql/bin/initdb -D $PGDATA
修改数据库参数:
按需要修改$PGDATA/postgresql.conf中的参数,如:
logging_collector = on
log_rotation_age = 1d log_rotation_size = 10MB 启动数据库: 这时就可以进入psql命令行了: postgres=# 这时可以创建用户数据库了: CREATE DATABASEmydb
二. 图形安装: 该部分介绍 PostgreSQL 程序的安装过程。基于 SuperMap 的 SDX+ for PostgreSQL 对 PostgreSQL 8.2版本不支持,建议安装 PostgreSQL 8.3 及以上版本。
三. redhat上包安装: 一.安装postgresql PGLIB=/usr/pgsql-版本号/lib ----------------------------------------------数据库创建成功时提示-------------------------------------- 修复已存在目录 /postgresql/data 的权限 ... 成功 警告: 为本地连接启动了 "trust" 认证. Success. You can now start the database server using: postmaster -D /postgresql/data
六.启动数据库 七.建立数据库 createdb MTPS psql MTPS 九.执行数据库操作 十.退出pssql 十一.设置外端连接 2)在pg_hba.conf中设置可连接客户端IP
四. ubantu上包安装: 安装环境: Ubuntu 10.04-desktop-i386 PostgreSQL 8.4
1. 安装PostgreSQL 输入如下命令 sudo apt-get install postgresql
系统会提示安装所需磁盘空间,输入"y",安装程序会自动完成。 安装完毕后,系统会创建一个数据库超级用户“postgres”,密码为空。这个用户既是不可登录的操作系统用户,也是数据库用户。
2. 修改Linux用户postgres的密码 输入如下命令 sudo passwd postgres 3. 修改数据库超级用户postgres的密码 1) 切换到Linux下postgres用户 sudo su postgres 2) 登录postgres数据库
psql postgres
这样你会看到postgres提示信息如下: psql (8.4.4) Type "help" for help. 并出现postgres的命令行提示符号: postgres=# 3) 输入如下命令 ALTER USER postgres with PASSWORD 'password' 键入“exit”返回到Linux命令行。
4. 添加自己定义的用户和数据库 1) 添加新用户 createuser -drSP fedoraAdmin 按照提示输入该用户的密码。 2) 创建一个属于自定义用户fedoraAdmin的数据库 createdb -O fedoraAdmin mydb 通过如上设置,可以在Java中通过以下配置来连接PostgresSQL数据库 user:fedoraAdmin password: your password url: jdbc:postgresql://localhost:5432/mydb
5. 安装pgAdmin3 1) 键入如下命令安装pgAdmin3 sudo apt-get install pgadmin3 2) 键入如下命令运行pgAdmin3 pgadmin3 你就会看到pgAdmin3的主界面如下所示:
添加相应的参数以创建一个到PostgreSql的连接:
6. 设置其它机器上对postgres的访问 修改/etc/postgresql/8.4/main/pg_hba.conf: host all all 0.0.0.0/0 md5 #0.0.0.0为地址段,0为多少二进制位 例如:192.168.0.0/16代表192.168.0.1-192.168.255.254
修改/etc/postgresql/8.4/main/postgresql.conf listen_address = '*'
重启数据库 sudo /etc/init.d/postgresql-8.4 restart (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |