Ubuntu下编译安装postgreSQL 10.5

ubuntu 16.04 LTS系统
postgreSQL 10.5

安装包准备

1.从PostgreSQL官网下载PostgreSQL的安装包

安装过程

2.解压源码包

tar zxvf postgresql-10.5.tar.gz
cd postgresql-10.5

3.检查环境配置

#创建postgreSQL的安装目录
mkdir /usr/local/postgresql
#检查环境配置--prefix是指定postgreSQL安装路径
./configure --prefix=/usr/local/postgresql

4.解决环境配置检查过程中出现的依赖问题
1)出现readline library not found依赖的解决

解决方法:

有网络:apt-get install -y libreadline-gplv2-dev
无网络:下载软件包使用dpkg命令安装 ,可在网站pkgs.org上下载
libtinfo-dev_6.0+20160213-1ubuntu1_amd64.deb
libreadline-gplv2-dev_5.2+dfsg-3build1_amd64.deb

2)出现zlib library not found依赖问题的解决

有网络:apt-get install zlib1g-dev

无网络:下载软件包
zlib1g-dev_1.2.8.dfsg-2ubuntu4_amd64.deb

5.再次重新检查环境
./configure --prefix=/usr/local/postgresql
6.编译安装
#编译安装
make && make install
出现下面的显示表示编译安装成功

安装contrib目录下的一些工具,是第三方组织的一些工具代码,建议安装

cd contrib
make && make install
7.添加用户
root 用户不能启动postgresql 所以创建一个普通用户来启动和管理
#如果直接只用useradd添加用户的话,可能出现没有home下的文件夹
#可以使用adduser 命令
adduser postgres
创建用户成功

7. 赋予 postgres用户相关文件夹权限

#创建postgreSQL数据存放位置
## postgreSQL有些配置文件将数据的存放位置指向 /usr/local/postgresql/data,
## 可以将将数据的存放位置创建在 /usr/local/postgresql下,可以省去后面一些配置的修改
mkdir -p /var/postgresql/data
## 日志存放
mkdir -p /var/postgresql/logs
# 给postgres用户赋予文件夹的所属权限和读写
chown -R postgres:postgres /usr/local/postgresql
chown -R postgres:postgres /var/postgresql

chmod -R 775 /var/postgresql/*

配置postgres用户环境变量
#切换至postgres用户
su - postgres
#修改配置文件
vim ~/.profile
# 添加以下内容和修改PATH
export PGHOME=/usr/local/postgresql
export PGDATA=/var/postgresql/data
export PGHOST=/tmp
export PATH="$HOME/bin:$HOME/.local/bin:$PATH:$PGHOME/bin"
export MANPATH=$PGHOME/share/man:$MANPATH
export LANG=en_US.utf8
export DATE=`date +"%Y-%m-%d %H:%M:%S"`
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
#下面只是启动服务的快捷配置,可不用配置
#alias pg_start='pg_ctl start -D $PGDATA'
#alias pg_stop='pg_ctl stop -D $PGDATA -m fast'

配置如下图

9.启动数据库

#初始化数据库
initdb -D /var/postgresql/data
#启动服务
pg_ctl -D /var/postgresql/data -l /var/postgresql/logs/logfile start
#连接数据库
psql
#创建数据库
create database test;
#创建表
create table t_user (id integer, name text);
#插入测试数据
insert into t_user values (1,'joke');
#查询数据
select * from t_user ;
#退出psql窗口
\q

10.修改监听所有网络以及数据库连接数
# 修改配置文件
vim /var/postgresql/data/postgresql.conf
# listen_addresses = ‘localhost’ 监听本机,'*'监听所有网络
listen_addresses = '*'
#max_connections 数据库的连接数根据具体需求更改

11. **修改远程访问 **

vim /var/postgresql/data/pg_hba.conf
#在文件的最下方加上下面的这句话
host all all 0.0.0.0/0 trust

12. 防火墙开启端口

# 切换root用户
su - root
# 防火墙 允许5432 端口
ufw allow 5432
** 重启postgreSQL服务
# 切换postgres用户
su - postgres
#重启服务
pg_ctl -D /var/postgresql/data -l /var/postgresql/logs/logfile restart

#停止服务
pg_ctl -D /var/postgresql/data -l /var/postgresql/logs/logfile stop

设置开机自启动
切换到root用户
su - root
找到解压后源码包里面的一个linux文件
cd /home/postgresql/postgresql-10.5/contrib/start-scripts

3. 修改linux文件属性,添加X属性

chmod a+x linux
复制linux文件到/etc/init.d目录下,更名为postgresql
cp linux /etc/init.d/postgresql
修改/etc/init.d/postgresql文件的两个变量
vi /etc/init.d/postgresql
#prefix设置为postgresql的安装路径:prefix=/usr/local/postgresql
#PGDATA设置为postgresql的数据目录路径:PGDATA="/var/postgresql/data"

执行service postgresql start,可以启动PostgreSQL服务
service postgresql start
如果这里执行命令后出现Failed to start postgresql.service: Unit postgresql.service not found.错误
请检查配置postgres用户的环境变量的时候是否将PATH给export了

设置postgresql服务开机自启动
#ubuntu 16.04前版本使用chkconfig命令
chkconfig --add postgresql
#ubuntu 16.04版本使用sysv-rc-conf命令,可能需要进行安装
sysv-rc-conf postgresql on
1. sysv-rc-conf 离线安装依赖的包
libcurses-perl_1.33-1build1_amd64.deb
libterm-readkey-perl_2.33-1build1_amd64.deb
libcurses-ui-perl_0.9609-1_all.deb
sysv-rc-conf_0.99-7_all.deb
从上至下依次安装即可
2. 在线安装
apt-get install sysv-rc-conf
重新启动系统,postgreSQL自动启动
参考文章:
https://www.aliyun.com/jiaocheng/142831.html
https://blog.csdn.net/jerry_sc/article/details/76408116

Ubuntu下编译安装postgreSQL 10.5的更多相关文章

  1. 在Ubuntu下编译安装GreatSQL

    在Ubuntu下编译安装GreatSQL 本次介绍如何利用Docker构建Ubuntu环境,并将GreatSQL源码编译成二进制文件. 1.准备工作 先创建本次Docker的workdir为 /dat ...

  2. Mac OSX下编译安装PostgreSQL

    原先使用的是官方提供的安装包,可是安装包会创建postgre这个用户.在登陆界面看的有点不爽,搜索了半天居然没有找到怎样在osx下编译安装的教程,并且假设是依照官方文档的编译安装办法一定会让你崩溃,本 ...

  3. linux下编译安装MariaDB 10.4.7,解决错误:cannot access ‘/auth_pam_tool_dir’: No such file or directory

    编译安装MariaDB 10.4.7,前面的步骤我就不复述了,一切正常没什么问题. 当执行到:scripts/mysql_install_db --basedir=/usr/local/mysql - ...

  4. ubuntu下编译安装poco

    系统环境: ubuntu版本:Linux jfcai-VirtualBox 4.15.0-29-generic #31-Ubuntu SMP Tue Jul 17 15:39:52 UTC 2018 ...

  5. [实践] ubuntu下编译安装ambari

    ambari是一个Hadoop套件的管理工具,可以方便部署.管理及监控.最初开发时使用的就是RH系的Linux,只支持RHEL.CentOS5/6.OEL.SLES,暂不支持Ubuntu:可我的需求就 ...

  6. Redhat 7.2 编译安装PostgreSQL 10

    1.环境说明 CentOS7.2 postgresql10.4 2.下载 postgresql的官方地址 https://www.postgresql.org/ftp/source/ 在下载列表中根据 ...

  7. ubuntu下编译安装mysql记录

         搞了整整一天,好不容易折腾完,在此记录下,下次就省事了.     去官网http://www.php.net/downloads.php下载所需要的php版本,这里我选择5.6.22.    ...

  8. Ubuntu 下编译安装linux

    1. 准备工作切换为管理员权限,sudo –i 输入用户密码 进入root 权限apt-get install build-essential kernel-package libncurses5-d ...

  9. linux-i386(ubuntu)下编译安装gsoap_2.8.17过程记录

    过程记录 :  1.下载gsoap_2.8.17.zip 并 解压 : $unzip gsoap_2.8.17.zip     2.进入解压后的目录gsoap-2.8   3.自动配置编译环境:  $ ...

随机推荐

  1. getline使用问题

    1.输入string string s1; getline(cin,s1); cin>>s1; //注意cin遇到空格会终止,而getline不会 2.关于吞回车问题 输入n后要记得吞回车 ...

  2. 了解Nginx与PHP的交互?

    Nginx可以接收请求并转发给PHP-FPM. 1.开始深入Nginx与FastCGI协议 通过对Nginx新增Server配置实现了nginx与PHP的一次通信,配置文件非常简单. 从上图的Ngin ...

  3. TensorFlow从0到1之程序结构(5)

    TensorFlow 与其他编程语言非常不同. 首先通过将程序分为两个独立的部分,构建任何拟创建神经网络的蓝图,包括计算图的定义及其执行.起初这对于传统程序员来说看起来很麻烦,但是正是图定义和执行的分 ...

  4. Java 设置PDF平铺图片背景(水印)

    一.概述及环境准备 本文介绍使用免费版PDF库-Free Spire.PDF for Java加载图片来设置成PDF平铺图片背景的效果,也可以作为平铺图片水印来使用:编辑代码前,需要先导入jar文件, ...

  5. CKAD个人考试心得

    先晒一波本人的CKA和CKAD证书! 如下正式分享CKAD心得: 考试相关准备: l 练习:https://github.com/dgkanatsios/CKAD-exercises: l 网络:必须 ...

  6. 重装conda

    重装Conda是因为想重装tensorflow,结果竟然报了各种各样稀奇古怪的错误:我贴一下自己见过的报错 The environment is inconsistent, please check ...

  7. [实战] Flutter 上的内存泄漏监控

    一.前言 Flutter 所使用的 Dart 语言具有垃圾回收机制,有垃圾回收就避免不了会内存泄漏. 在 Android 平台上有个内存泄漏检测工具 LeakCanary, 它可以方便地在 debug ...

  8. OO第一单元——谜之随性总结

    前言 第一单元的作业主要是以多项式求导为载体来训练我们的面向对象的思维,难度循序渐进,复杂度也一直在提高,但是面向对象的体现性也越来越强,当然带来的优势与便利也在逐步提升.下面的内容主要从需求分析,代 ...

  9. WeChair项目Alpha冲刺(1/10)

    团队项目进行情况 1.昨日进展    因为是Alpha冲刺第一天,所以昨日进展无 2.今日安排 前端:完成前端页面的首页html+css部分 后端:搭建好SpringBoot项目以及完成实体类代码的编 ...

  10. 安卓开发,Service 服务

    Service 服务 是一种应用组件,可长时间后台运行,不提供用户界面.如音乐播放器/下载程序.不能自己运行. 使用Service的方式: (一)startService(): 调用者和服务之间没有联 ...