Ubuntu编译安装postgreSQL 10.5

Ubuntu下编译安装postgreSQL 10.5

ubuntu 16.04 LTS系统
postgreSQL 10.5

安装包准备

  1. PostgreSQL官网下载PostgreSQL的安装包
    在这里插入图片描述

安装过程

  1. 解压源码包
tar zxvf postgresql-10.5.tar.gz
cd postgresql-10.5

检查环境配置

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

解决环境配置检查过程中出现的依赖问题

  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
出现zlib library not found依赖问题的解决
在这里插入图片描述

有网络:apt-get install zlib1g-dev
无网络:下载软件包
zlib1g-dev_1.2.8.dfsg-2ubuntu4_amd64.deb

  1. 再次重新检查环境
./configure --prefix=/usr/local/postgresql
  1. 编译安装
#编译安装
make && make install

出现下面的显示表示编译安装成功
在这里插入图片描述

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

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

创建用户成功
在这里插入图片描述

配置postgres用户环境变量

#切换至postgres用户
su - postgres
#修改配置文件
vim ~/.profile
# 添加以下内容和修改PATH
export PGHOME=/usr/local/postgresql
export PGDATA=/var/postgresql/data
export PGHOST=localhost
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'

配置如下图
在这里插入图片描述

启动数据库

#初始化数据库
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

修改监听所有网络以及数据库连接数

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

在这里插入图片描述

. **修改远程访问 **

vim /var/postgresql/data/pg_hba.conf 
#在文件的最下方加上下面的这句话,最后一个 trust 表示所有用户不需要密码,需要密码要设置为 md5
host    all         all         0.0.0.0/0             md5

在这里插入图片描述

防火墙开启端口

# 切换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

设置开机自启动

  1. 切换到root用户
su - root
1
  1. 找到解压后源码包里面的一个linux文件
cd /home/postgresql/postgresql-10.5/contrib/start-scripts
1

在这里插入图片描述

  1. 修改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"
    

    在这里插入图片描述

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

service postgresql start

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

ˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇ
这里很重要,没有教程,有一个方法可用ubuntu18
||||||||||||||||||||||||||||||||
$ sudo service postgresql start
Failed to start postgresql.service: Unit postgresql.service is masked.
$ sudo systemctl unmask postgresql	--执行这一句即可生效
Removed symlink /etc/systemd/system/postgresql.service.

$ sudo systemctl restart postgresql
$ sudo service postgresql start
$ service postgresql status

设置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自动启动

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值