DB-hub Technology PostgreSQL安装

PostgreSQL安装

1.配置环境

  1. 创建用户
    root登录
useradd postgres
passwd postgres
  1. 创建软件安装目录,数据和日志存储目录(数据库cluster目录)
mkdir -p /opt/pg.13.0
mkdir -p /opt/pgdata
  1. 设置权限
chown -R postgres:postgres /opt/pg.13.0
chown -R postgres:postgres /opt/pgdata
  1. 环境变量
su postgres
vi .bash_profile

export PGHOME=/opt/pg.13.0
export PGDATA=/opt/pgdata
export PATH=PGHOME/bin:PATH
export LANG=en_US.UTF-8
export LD_LIBRARY_PATH=PGHOME/lib:LD_LIBRARY_PAT
export PGUSER=postgres
export PGPORT=5432
export PS1='[\u@\h:`pwd`]'

source .bash_profile
  1. postgres添加sudo权限
    sudo是Linux系统管理命令,是允许系统管理员让普通用户执行一些或者全部root命令的一个工具。Linux系统下,为了安全,一般的操作都是在普通用户下执行,但是有时候普通用户需要使用root权限,比如在DBA安装数据库软件的时候。这个时候如果来回切换到root用户会比较麻烦,用sudo命令会很方便。实际上,除了UNIX系统管理员,DBA或者普通用户是不知道root用户的密码的。
    进入root用户:
    添加文件写权限:
chmod u+w /etc/sudoers

编辑/etc/sudoers,增加一行: 用户名 ALL=(ALL) ALL,保存退出

vi /etc/sudoers

postgres    ALL=(ALL)       NOPASSWD:ALL

撤销写权限:

chmod u-w /etc/sudoers

2.源码下载

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

image.png

拷贝到 postgres home目录

3.编译环境准备

  1. gcc g++
sudo yum -y install gcc.x86_64
sudo yum -y install gcc-c++.x86_64 gcc.x86_64
  1. make
sudo yum install -y make.x86_64 make-devel.i686 make-devel.x86_64
  1. ncurses-devel
rpm -qa|grep ncurses-devel
sudo yum install ncurses-devel
  1. readline-devel zlib-devel
sudo yum install -y readline-devel zlib-devel

4.编译安装

  1. 解压源码包
tar -zxvf postgresql-13.0.tar.gz
  1. 编译
./configure --prefix=/opt/pg.13.0
sudo make
sudo make install

5.初始化数据库

1. 初始化

initdb

image.png

2. 启动

pg_ctl -D /opt/pgdata -l logfile start

image.png

netstat -nltp |grep 5432

image.png

3. 停止

pg_ctl -D /opt/pgdata -l logfile stop

6.配置数据库

1. 配置系统服务(开机启动)

  • 将Linux文件复制到 /etc/init.d 目录下,重名为postgresql
cd /home/postgres/postgresql-13.0/contrib/start-scripts
chmod a+x linux
sudo cp linux /etc/init.d/postgresql
  • 修改postgresql文件
cd /etc/init.d
sudo vi postgresql

这一行,取消注解:chkconfig –add postgresql //设置服务开机启动
prefix设置为postgresql的安装路径, 即PGHOME:/opt/pg.13.0
PGDATA设置为postgresql的数据目录路径, 即PGDATA:/opt/pgdata
PGUSER设置为postgresql的用户:postgres
PGLOG 设置为 postgresql 的数据目录的日志文件夹下:$PGDATA/serverlog
保存,退出

sudo systemctl enable postgresql    //启用开机启动服务
  • 重启机器测试
sudo systemctl status postgresql

image.png

sudo systemctl restart postgresql
sudo systemctl stop postgresql
sudo systemctl start postgresql

2. 创建数据库

createdb test

image.png

3. 配置远程连接

1)新安装的数据库默认只监听来自本地的连接,需要修改配置文件$PGDATA/postgresql.conf

cd $PGDATA
cp postgresql.conf postgresql.conf.20201112
vi postgresql.conf
修改:
listen_addresses = '*'

image.png

2) 修改配置文件$PGDATA/pg_hba.conf

image.png

3) 重启postgresql服务

sudo systemctl restart postgresql

4)连接测试

image.png