ubuntu18 从源码编译安装psql

2 篇文章 0 订阅
2 篇文章 0 订阅

为了自定义database的存储路径,我使用源码编译安装。如果直接apt-get install,以后再改存储路径非常费劲。

先下载 https://www.postgresql.org/ftp/source/

为了顺利使用chembl库,这里下载的是https://ftp.postgresql.org/pub/source/v9.5.17/postgresql-9.5.17.tar.bz2

解压放好,进入解压目录下

以下依赖如果没有,就先安装依赖

 

sudo apt-get install libreadline6=6.3-4ubuntu2 libreadline6-dev
#安装readline的作用是使得可以在命令行回滚历史命令,编辑命令

sudo apt-get install zlib1g-dev 

sudo apt-get install gcc

然后

./configure --prefix=/media/lixutong/database/postgres9.5
## --prefix一定要设置,不然卸载会很麻烦,而且最好不要放到系统盘下面,占空间 ##

make

make install

出现 PostgreSQL installation complete. 说明安装成功。

如果有需求,可以专门创建一个用户。我不再创建用户,用户就是我自己

在~/.bashrc中加入以下内容

export PATH=/media/lixutong/database/postgres9.5/bin:$PATH
export PGDATA=/media/lixutong/database/postgres9.5/data
export PGHOME=/media/lixutong/database/postgres9.5/bin
export LANG=zh_CN.UTF-8
export PGPORT=5432

source ~/.bashrc 之后

initdb -D /media/lixutong/database/postgres9.5/data --locale=zh_CN.UTF8

这里看一下/media/lixutong/database/postgres9.5/data 的权限,应该是0700,否则下一步会报错

我遇到了权限是777且不能改成0700的问题,原因是我用的windows系统的旧硬盘,是ntfs格式,装成ubuntu之后我没有格式化直接用了。ntfs格式的硬盘不能用chmod修改权限。因此我换了ext4格式的硬盘重新安装的。

pg_ctl start -D /media/lixutong/database/postgres9.5/data

这样理论上都搞定了,运行

psql

报错

psql: could not connect to server: 没有那个文件或目录
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

看看.s.PGSQL.5432在哪

find / .s.PGSQL.5432 |grep .s.PGSQL.5432

发现在/tmp里

那么

psql -h /tmp

或者

psql -h localhost

都可行

这里我也不知道为什么 我看postgresql.conf里几乎全注释掉了,取消unix_socket_directories=‘tmp’的注释也不行,反正-h可以运行,就不管了

接下来还有最后一个报错

FATAL:  database "username" does not exist

因为用源码编译没有新建postgres这个用户和postgres这个database,所以我们进入template1数据库

psql -h localhost -d template1

成功了!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值