热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PostgreSQL9.0安装过程笔记

PostgreSQL9已经发布了,我属于新版本控,于是计划着在VPS(winserver2003)和服务器(CentOS5.5)上安装,先不讲过程,结果是服务器上已成功安装,VPS主动放弃。在些提醒各位,PostgreSQL9安装很纠结,选择需慎重。一、VPS(winserver2003)直接在官网

PostgreSQL 9已经发布了,我属于新版本控,于是计划着在VPS( win server 2003)和服务器(CentOS 5.5)上安装,先不讲过程,结果是服务器上已成功安装,VPS主动放弃。在些提醒各位,PostgreSQL 9安装很纠结,选择需慎重。

一、VPS(win server 2003)

直接在官网下载 win安装包.exe文件,按照8.4版本的习惯一路直下,在安装完成的时候出现 “ Problem running post-install step. Installation may not complete correctly. The database cluster initialisation failed.” GG一下,看到有人讲在非英文系统下安装时Local选择非默认语言,如Singapore或c(别听那些不靠谱的说选Chinese,在9.0版本中压根没那选项)。于是把自己电脑上( win xp)的8.4卸载,重新安装选择Singapore(新加坡,对中文支持比较好),依然一路直下,OK搞定。然后把VPS卸载重新安装,依然出错,泪流满面……把公司另台电脑格掉装上win server 2003,安装时local选Singapore,结果成功。后来又在VPS上尝试local时选C或者其他,依然失败,然后又拿8.4甚至8.3版本安装失败依然。在其他win系统(包括同版本的win server 2003)中可正常安装,好吧VPS,到期我就换掉你丫的。

win正常安装pg9请注意:中文版系统安装时local一定选择非默认语言。

二、服务器(CentOS 5.5)

一直想给服务器(使用CentOS)装上PostgreSQL,最初的时候使用yum,结果一看是在Down 8.3版本(丫的先不说9.0版已经横空出世,8.4版可出来N久了),直接ctrl+C。

之后参照鱼哥(smallfish)的教程(点击)下载了并安装了pg9初始化时:

service postgresql initdb
Usage: /etc/init.d/postgresql {start|stop|restart|reload|status}
@##@!¥¥@#什么东东,可以使用了吗?
service postgresql start
Starting PostgreSQL: ok
service postgresql stop
Stopping PostgreSQL: pg_ctl: PID file "/usr/local/pgsql/data/postmaster.pid" does not exist
Is server running?
什么状况?欲哭无泪……于是等yum安装Pg版本升级到9.0。前天几发现已经到9.0了:

yum postgresql postgresql-server
最后出现:

apr-util-1.2.7-11.el5_5.1.i386 from installed has depsolving problems
--> Missing Dependency: libpq.so.4 is needed by package apr-util-1.2.7-11.el5_5.1.i386 (installed)
lxphp-5.2.1-400.i386 from installed has depsolving problems
--> Missing Dependency: libpq.so.4 is needed by package lxphp-5.2.1-400.i386 (installed)
Error: Missing Dependency: libpq.so.4 is needed by package lxphp-5.2.1-400.i386 (installed)
Error: Missing Dependency: libpq.so.4 is needed by package apr-util-1.2.7-11.el5_5.1.i386 (installed)
You could try using --skip-broken to work around the problem
You could try running: package-cleanup --problems
package-cleanup --dupes
rpm -Va --nofiles --nodigest
看到这些真是心灰意冷,感觉服务器被我折腾的千疮百孔……

后来就去Gtalk去问鱼哥,操作如下:

查看rpm安装包
[root@localhost ~]# rpm -qa | grep postgres
postgresql-libs-8.1.22-1.el5_5.1
postgresql90-libs-9.0.0-1PGDG.rhel5
postgresql90-contrib-9.0.0-1PGDG.rhel5
postgresql90-devel-9.0.0-1PGDG.rhel5
postgresql90-9.0.0-1PGDG.rhel5
postgresql90-server-9.0.0-1PGDG.rhel5
貌似装好了?太貌似了。可是依然:
service postgresql initdb
Usage: /etc/init.d/postgresql {start|stop|restart|reload|status}
service postgresql start
Starting PostgreSQL: ok
service postgresql stop
Stopping PostgreSQL: pg_ctl: PID file "/usr/local/pgsql/data/postmaster.pid" does not exist
Is server running?
源码安装一次,然后rpm安装一次,2个混乱了?/usr/local/pgsql/源码编译的prefix,那么把编译的直接删除,MV到一个临时目录下,清理干净/var/local/pgsql、/var/lib/pgsql,mv走/init.d/postgres。按照依赖删除rpm。

全部删除完毕,重新rpm安装初始化时:

[root@localhost home]# service postgresql initdb
/usr/local/pgsql/bin/postmaster not found
要么编译安装吧,基本选项就是prefix,指定个目录就OK了。可是依然无法初始化……

最后,把由鱼哥持刀(当然不是杀鱼:)解决

原因:initdb不支持gb编码,需手动指定编码、手动指定initdb目录。

操作:

export LC_ALL=UTF8
initdb -D /var/lib/pgsql/9.0/data(此目录为rpm安装默认目录)
另:安装psycopg2

使用easy_install和下载安装均报错:

[root@localhost psycopg2-2.2.2]# python setup.py install
running install
running build
running build_py
running build_ext
Warning: Unable to find 'pg_config' filebuilding 'psycopg2._psycopg' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION="2.2.2 (dt dec ext pq3)" -DPSYCOPG_EXTENSIOnS=1 -DPSYCOPG_NEW_BOOLEAN=1 -DHAVE_PQFREEMEM=1 -DHAVE_PQPROTOCOL3=1 -I/usr/local/include/python2.6 -I. -c psycopg/psycopgmodule.c -o build/temp.linux-i686-2.6/psycopg/psycopgmodule.o -Wdeclaration-after-statement
在包含自 psycopg/psycopgmodule.c:32 的文件中:
./psycopg/psycopg.h:31:22: 错误:libpq-fe.h:没有那个文件或目录
In file included from psycopg/psycopgmodule.c:33:
./psycopg/connection.h:95: 错误:expected specifier-qualifier-list before ‘PGconn’
./psycopg/connection.h:116: 错误:expected ‘)’ before ‘*’ token
./psycopg/connection.h:117: 错误:expected ‘)’ before ‘*’ token
./psycopg/connection.h:118: 错误:expected ‘)’ before ‘*’ token
./psycopg/connection.h:119: 错误:expected ‘)’ before ‘*’ token
./psycopg/connection.h:123: 错误:expected declaration specifiers or ‘...’ before ‘PGconn’
In file included from psycopg/psycopgmodule.c:34:
./psycopg/cursor.h:60: 错误:expected specifier-qualifier-list before ‘PGresult’
In file included from psycopg/psycopgmodule.c:35:
./psycopg/green.h:63: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
在包含自 psycopg/psycopgmodule.c:36 的文件中:
./psycopg/lobject.h:31:28: 错误:libpq/libpq-fs.h:没有那个文件或目录
In file included from psycopg/psycopgmodule.c:36:
./psycopg/lobject.h:51: 错误:expected specifier-qualifier-list before ‘Oid’
./psycopg/lobject.h:57: 错误:expected declaration specifiers or ‘...’ before ‘Oid’
./psycopg/lobject.h:57: 错误:expected declaration specifiers or ‘...’ before ‘Oid’
psycopg/psycopgmodule.c: In function ‘psyco_register_type’:
psycopg/psycopgmodule.c:269: 错误:‘cursorObject’ 没有名为 ‘string_types’ 的成员
psycopg/psycopgmodule.c:272: 错误:‘connectionObject’ 没有名为 ‘string_types’ 的成员
error: command 'gcc' failed with exit status 1
原因:pg目录里lib和include没有加入编译,找不到头文件和lib共享库

操作:

export C_INCLUDE_PATH=/usr/pg-90/include
export LIBRARY_PATH=/usr/pg-90/lib
然后: easy_install psycopg2或者解开下载压缩包python setup.py install就搞定了。

以上安装pg9和psycopg2均得到鱼哥大力帮助,表示感谢。


推荐阅读
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • CentOS 7 磁盘与文件系统管理指南
    本文详细介绍了磁盘的基本结构、接口类型、分区管理以及文件系统格式化等内容,并提供了实际操作步骤,帮助读者更好地理解和掌握 CentOS 7 中的磁盘与文件系统管理。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 在Ubuntu 16.04 LTS上配置Qt Creator开发环境
    本文详细介绍了如何在Ubuntu 16.04 LTS系统中安装和配置Qt Creator,涵盖了从下载到安装的全过程,并提供了常见问题的解决方案。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 本文详细介绍了 MySQL 中 LAST_INSERT_ID() 函数的使用方法及其工作原理,包括如何获取最后一个插入记录的自增 ID、多行插入时的行为以及在不同客户端环境下的表现。 ... [详细]
author-avatar
何cecilio
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有