postgresql编译安装与调试(tar.gz)

因为最近组里的项目和postgresql有关,并且需要查看和调试源码,所以专门学习了一下如何安装和调试postgresql,此博文用来记录自己的安装和调试过程。安装环境是CentOS6(CentOS7可能稍微有点不一样,不过大体上是一样的),调试工具是gdb。

既然是希望后期能够调试和跟踪源码,我们选择从源码编译安装。我们首先从官网取Source,官网在这里:

https://www.postgresql.org/ftp/source/

在这里你可以看到发布的所有postgresql版本,我取的是postgresql9.5.4这个版本,其他版本的编译流程也是类似的,大家随意,这里不赘述了。

取到source后,准备开始编译安装。

这里需要注意的postgresql编译需要预装一些工具。除了make、gcc(GNU编译器套件)这些基本必备的工具,还要有zlib、bison(一个YACC语法分析生成器的GNU实现)、readline等等。。。。太多记不住?

没关系,我们先进去编译,遇到缺少的包,会提示你缺少相应的包,再安装上即可。

取到源码 我们先解压:tar -zxvf postgresql-9.5.4.tar.gz

cd postgresql-9.5.4 进去

这里要注意的是,由于我希望后面能跟踪代码的运行路径,所以我要在编译configure的时候加上--enable-debug的选项,并且修改src/Makefile.global文件:

CFLAGS = -O2 -Wall -Wmissing-prototypes -Wpointer-arith \
-Wdeclaration-after-statement -Wendif-labels -Wformat-security \
-fno-strict-aliasing -fwrapv

把上面的"-O2"选项删除,然后加上"-g" 如下所示:

CFLAGS = -g -Wall -Wmissing-prototypes -Wpointer-arith \
-Wdeclaration-after-statement -Wendif-labels -Wformat-security \
-fno-strict-aliasing -fwrapv

为什么要这么做呢?因为"-O2"是编译器的优化选项,如果打开了,代码的执行顺序会改变,使得追踪起代码来比较困难。当然去除了优化选项,编译后的可执行文件会比较大,而且会比较慢,所以不太适合生产环境。所以切记这个操作仅仅是在学习的时候而设置的。

不想修改文件的话,也可以先这样做:

export CFLAGS = "-g -Wall -Wmissing-prototypes -Wpointer-arith \
-Wdeclaration-after-statement -Wendif-labels -Wformat-security \
-fno-strict-aliasing -fwrapv"

然后输入如下命令:

./configure --prefix=/opt/psql --with-perl --with-tcl --with-python --with-openssl 
--with-pam --without-ldap --with-libxml --with-libxslt --enable-thread-safety
--with-wal-blocksize=16 --with-blocksize=16 --enable-dtrace --enable-debug

其中--prefix是指定软件的安装路径,--with选项是指安装本文件依赖的库文件。如有不清楚可以自己学习下configure命令的相关参数。

运行之后,显示如下错误:

果然 缺少了dtrace,没关系,我们使用yum命令:

找到了,我的机器是64位的,所以果断选择第二个:

使用yum命令(当然其实也可以用rpm命令,但是yum命令自己就可以解决各种包之间的依赖问题,所以推荐yum命令)安装:

yum install -y systemtap-sdt-devel.x86_64

安装成功!

然后继续运行configure命令,遇到其他包的问题类似上面的处理,这里就不赘述了。

当然,对于伸手党们,下面的这个链接可供参考:

 http://blog.csdn.net/luojinbai/article/details/44217551

运行上面的configure命令后,如果显示如下的画面那就是成功了。

然后再运行make命令,耐心等待一会,make会需要几分钟时间。

这样之后就可以make install命令了

make install也OK了!

然后你就会发现在/opt/目录下找到你安装的psql了

其中:

/opt/psql/bin里面放的是可执行命令,比如createdb之类的;

/opt/psql/lib里面放的是库文件;

/opt/psql/include里面放的是头文件;

/opt/psql/share是相关的资源文件。

这些文件如果在configure命令中没有指定--prefix的话,会安装到/usr/local/目录下,以后要删除的时候就要一个个找了,比较麻烦。

好的 我们安装好了postgresql程序,接下来进行配置。

为了安全考虑,postgresql不允许使用root用户操作数据库,我们在系统中为使用postgresql添加一个用户postgres:

并创建密码:

然后我们切换到postgres用户下(切记是 su - ,“-”不可少):

编辑/home/postgres下的.bash_profile

设置以下的环境变量

export PGHOME=/opt/psql  (这个就是我们的安装目录)

export PGDATA=~/data        (数据存放的目录,这个看你高兴了,不要求一定放在这里)

export PATH=$PATH:$HOME/bin:$PGHOME/bin

然后source一下

source  ~/.bash_profile

使环境变量生效。

接下来初始化数据库,使用initdb命令(如果提示command not found,那么很有可能是你上面的PGHOME设置错误或者没有source一下)

 然后会有以下显示:

数据库的初始化完成!

然后运行

pg_ctl start

启动postgres数据库实例。此时你就可以使用

ps -ef | grep postgres

看到postgresql进程了。

现在我们可以进入数据库,使用如下命令:

psql -h 127.0.0.1 -d postgres -U postgres

当然,如果是进入本机的和用户名同名的数据库,直接psql即可,具体解释可查看postgresql官方手册。

如果我们比较懒,不想每次登录手动启动psql,那么设置下psql开机启动。

PostgreSQL的开机自启动脚本位于PostgreSQL源码目录的contrib/start-scripts路径下:

linux文件即为自启动脚本。

1)修改linux文件属性,添加X属性(这里如果提示无权限的话,切换到root用户进行操作)

[root@localhost start-scripts]# chmod a+x linux

2) 复制linux文件到/etc/init.d目录下,更名为postgresql

[root@localhost start-scripts]# cp linux /etc/init.d/postgresql

3)修改/etc/init.d/postgresql文件的两个变量

prefix设置为postgresql的安装路径:/opt/psql

PGDATA设置为postgresql的数据目录路径:/home/postgres/data

执行service postgresql start,就可以启动PostgreSQL服务

4) 执行service postgresql start,就可以启动PostgreSQL服务

[root@localhost start-scripts]# service postgresql start

5)设置postgresql服务开机自启动

[root@localhost start-scripts]# chkconfig --add postgresql

执行上面的命令,就可以实现postgresql服务的开机自启动。

这次就先写这么多,第二部分再介绍下postgresql的代码结构和调试方法。

### 回答1: canal.adapter-1.1.5.tar.gz是一个压缩文件,通常被用于分发和安装软件。根据文件名来推测,这个文件很可能与canal.adapter软件的版本1.1.5有关。canal.adapter是一个用于数据同步和实时数据抽取的开源工具,可以将数据库中的变更数据实时地推送到其他系统进行处理和分析。 .tar.gz是一种常见的压缩文件格式,.tar表示将多个文件或目录打成一个.tar文件,.gz表示对.tar文件进行gzip压缩。所以canal.adapter-1.1.5.tar.gz文件首先需要进行解压缩,才能使用其中的内容。解压缩这个文件的方式可以使用命令行工具如tar或7-Zip等软件。 解压缩后,我们可以看到其中可能含有源代码、库文件、配置文件等相关文件。这些文件可以根据需要进行调整和配置,以便正确地运行和使用canal.adapter工具。 使用canal.adapter-1.1.5.tar.gz文件,我们可以在项目中使用最新版本的canal.adapter来进行数据同步和实时数据抽取的开发。可以通过编译源代码、配置相关参数和引入依赖等步骤,将canal.adapter集成到我们的项目中,从而实现实时的数据库数据同步功能。 总之,canal.adapter-1.1.5.tar.gz是一个压缩文件,与canal.adapter软件及其版本1.1.5相关。它是一个用于数据同步和实时数据抽取的工具,通过解压缩并进行相关配置,我们可以在项目中使用这个工具实现数据库数据的实时同步。 ### 回答2: canal.adapter-1.1.5.tar.gz 是一个文件的压缩。其中 canal.adapter 是一个数据传输工具,可以与 Canal 进行配合使用。Canal 是阿里巴巴的一个开源项目,用于实时同步 MySQL 或者 PostgreSQL 数据库的数据到消息队列或者其他存储中。 通过解压 canal.adapter-1.1.5.tar.gz 文件,我们可以获得 canal.adapter-1.1.5 文件夹,其中含了 canal.adapter 的相关文件和配置。 在使用 canal.adapter 进行实时数据同步时,我们可以根据不同的业务需求进行配置。主要的配置文件括 instance.properties 和 adapter.properties。instance.properties 用于配置与数据库的连接信息,如数据库的地址、端口、用户名和密码等。adapter.properties 则可以配置数据同步的规则,括指定要同步的数据库、表以及需要传输到的目标存储等。 下载并安装 canal.adapter-1.1.5 版本后,我们可以使用命令行或者配置启动脚本来启动 canal.adapter。启动后,canal.adapter 将会根据配置规则进行数据同步。当数据库中的数据发生变化时,canal.adapter 将会将变更的数据发送到指定的消息队列或者存储,以供其他应用程序使用或者分析。 可以说,canal.adapter-1.1.5.tar.gz 提供了一个方便可靠的数据传输工具,可以帮助开发者实现数据库数据的实时同步,方便数据的处理和利用。 ### 回答3: canal.adapter-1.1.5.tar.gz是一个压缩文件,通常用于存储和传输文件。根据后缀名.tar.gz,我们可以推断这是一个使用targzip算法进行压缩的文件。 Canal.adapter-1.1.5.tar.gz的具体内容无法确定,因为它只是一个文件的名称。它可能是一个软件、库文件或其他类型的文件。 Canal.adapter-1.1.5.tar.gz可能是Canal Adapter的一个版本,Canal Adapter是一种用于数据同步的工具。Canal Adapter提供了通过Canal获取MySQL数据库的更新事件,并将其转发到其他存储、消息队列或分析系统的能力。 .tar.gz是一种常见的压缩文件格式,在Linux和Unix系统中被广泛使用。通过解压tar.gz文件,我们可以得到原始的文件或文件夹。 要解压.tar.gz文件,可以在命令行中使用常见的解压工具,例如tar命令。我们可以使用以下命令进行解压: ``` tar -zxvf canal.adapter-1.1.5.tar.gz ``` 解压后,我们可以在适当的目录中找到相应的文件。进一步操作取决于该文件的用途和目的。 需要注意的是,300字的篇幅非常有限,上述回答只是对Canal.adapter-1.1.5.tar.gz进行的初步猜测,并不能提供关于该文件的详细信息。如需进一步了解,建议查看相关文档或咨询相关的技术人员。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值