这份安装笔记同样也适用psotgresql 9,下面的说明中比较多的使用到sudo命令,而且用在平时比较常用的指令前面如service,useradd,groupadd等,这些命令不能直接执行,需要如sudo service 才可以,否则会报错,提示没有这条指令,猜测原因,是由于debian 10调整了安全策略,不允许用户提权后直接使用root权限指令。(用root用户直接登录,可以使用。“这应该是废话吧,哈哈哈哈”),祝安装愉快,希望能帮到各位。

安装准备

  1. 下载debian 10
    可以前往官网下载,但是官网的速度比较慢,选择国内源下载比较快,我用的是中国科技大学
  2. 系统安装
    我用的是虚拟机安装,与正式安装差不多,所以该过程忽略(网络上大把教程),个人觉得唯一要注意的是,在安装过程中,有选择更改使用的源,要选择国内的源地址,哪个都可以,一般选择163,清华,科技大,搜狐,或者华为等等;安装完成后最好执行下apt-get update /apt-get upgrade这两条命令,把系统的软件在更新下;
  3. 安装组件
    3.1 安装java 11
    我先安装java(我也不知道为啥,习惯了),这个版本的debian可以支持到java11的版本,就安装最新的版本,用源安装(简单粗暴) apt-get install default-jdk等待安装完成就好,完成后执行 java --version可以查看版本号,效果如下:
root@debian10:/# java --version
 openjdk 11.0.5 2019-10-15
 OpenJDK Runtime Environment (build 11.0.5+10-post-Debian-1deb10u1)
 OpenJDK 64-Bit Server VM (build 11.0.5+10-post-Debian-1deb10u1, mixed mode, sharing)

3.2 安装编译器

apt-get install libreadline-dev make gcc zlibc libghc-zlib-dev libzlcore-dev git automake -y

3.3 新建用户和文件夹,并修改文件夹所有者

sudo groupadd postgres
 sudo useradd postgres -g postgres
 mkdir -p /usr/local/pgsql
 mkdir -p /db/pgsql/data
 chown -R postgres /usr/local/pgsql/.
 chown -R postgres /db/pgsql/data
 chown -R postgres /db/pgsql/data/.

3.4 下载并解压文件

wget http://ftp.postgresql.org/pub/source/v12.1/postgresql-12.1.tar.gz
tar -zxvf postgresql-12.1.tar.gz -C /usr/src #可以自定义解压路径,只要能找得到就好

3.5 编译安装

./configure
  make
  make install

3.6 修改/etc/profile环境配置文件

vi /etc/profile

在文件的最后一行添加

PATH=/usr/local/pgsql/bin:$PATH  主要用于psql这条指令的运行
export PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/src/postgresql-12.1/src/lib
export LD_LIBRARY_PATH
C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/pgsql/include
export C_INCLUDE_PATH

添加完毕后,执行source让环境生效

source /etc/profile

3.7 切换用户,初始化数据库脚本

su - postgres
$ /usr/local/pgsql/bin/initdb --encoding=utf8 -D /db/pgsql/data
exit

3.8 复制数据库启动脚本到/etc/init.d/目录,并增加执行权限

cp /usr/src/postgresql-9.6.3/contrib/start-scripts/linux /etc/init.d/postgresql
chmod +x /etc/init.d/postgresql

3.9 编辑启动脚本,指定数据库文件目录,在行首添加启动脚本

vi /etc/init.d/postgresql
找到 Data directory 
     PGDATA=""
修改为 PGDATA="/db/pgsql/data"效果如下
# Data directory
PGDATA="/db/pgsql/data"
在!/bin/sh下加入启动脚本效果如下
!/bin/sh
### BEGIN INIT INFO
# Provides:          postgresql
# Required-Start:    $local_fs $remote_fs $network $syslog $named  
# Required-Stop:     $local_fs $remote_fs $network $syslog $named
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: PostgreSQL RDBMS server
# Description:       Start the postgresql service
### END INIT INFO

3.10 修改postgresql.conf配置文件,配置可以访问数据库的主机地址

vi /db/pgsql/data/postgresql.conf
找到listen_address = ''
修改为 listen_address = '*'  用于测试所以就全开,如果生产环境,请指定IP地址

3.11 注册postgresql服务,启动服务查看端口是否开放

sudo update-rc.d postgresql defaults
service postgresql start
netstat -ano | grep 5432  postgresql默认端口

3.12 测试登录并修改密码

root@debian10:/# psql -U postgres
psql (12.1)
Type "help" for help.
postgres=#
看到以上这段说明安装完成,然后执行修改密码命令
postgres=# ALTER USER postgres PASSWORD 'test123456';
ALTER ROLE
看到以上返回说明密码修改成功 
/exit

3.13 修改pg_hba.conf配置文件,需要md5验证

vi /db/pgsql/data/pg_hba.conf
找到以下
# "local" is for Unix domain socket connections only
# local  all  all   trust
local all all md5
# IPv4 local connections:
#host all all 127.0.0.1/32 trust
host all all 0.0.0.0/0 md5
sudo service postgresql stop
sudo service postgresql start

3.14 将postgresql开机自启

由于debian10源库里没有chkconfig工具,可以安装sysv-rc-conf,然后复制文件到/usr/bin目录修改文件名为chkconfig,操作如下
apt-get install sysv-rc-conf
cp /usr/sbin/sysv-rc-conf /usr/bin/chkconfig
chkconfig postgresql on
即可完成开机启动配置

安装完成,如果需要配置数据库,请查询官方文档。纯手打,转载请说明出处。