Postgresql从源代码安装以及配置Stream Replication

环境:Debian 8.0

用Debian的apt-get install安装后,不知道都安装到哪里去了,配置文件、执行文件、数据目录满天飞,到处找很麻烦,所以还是老老实实从源代码安装。


1. 在linux用adduser命令添加一个新用户,用户名可以为postgres


2. 编辑 /etc/sudoers,添加postgres用户,这样后续可以执行sudo命令


3. 用postgres用户登录


4. wget获取源代码,因为是https地址,所以wget加开关--no-check-certificate

wget --no-check-certificate https://ftp.postgresql.org/pub/source/v9.5.3/postgresql-9.5.3.tar.gz

下载到 /home/postgres/postgresql-9.5.3.tar.gz


5. 解压源文件

gunzip postgresql-9.5.3.tar.gz
tar xf postgresql-9.5.3.tar

解压完成后,形成源代码目录 postgresql-9.5.3


6. 进入源代码目录 /home/postgres/postgresql-9.5.3


7. configure

在源代码目录下执行

./configure

执行过程中,可能会报错,比如缺少readline库,缺少zlib库等,一般都是缺少开发库。

比如readline库,可通过 sudo apt-get install libreadline6-dev命令安装。zlib库,可以用命令 sudo apt-get install zlib1g.dev

基本原则是缺什么开发库,就装什么。


8. make

在源代码目录下执行 make world,这样连文档等都编译好


9. 编译检查

make check


10. 安装

sudo make install

sudo make install-docs

程序会安装到 /usr/local/pgsql下


11. 修改PATH环境变量,增加 /usr/local/pgsql/bin

可修改 /home/postgres/.bashrc 文件


12. 新建data目录。该目录用于存放数据库数据

mkdir /usr/local/pgsql/data


13. 改变/usr/local/pgsql/data目录的owner

sudo chown -R postgres /usr/local/pgsql/data

这样postgres有足够的权限执行该目录下的相关操作



14. 启动脚本准备。源代码目录下的contrib目录下有启动脚本,可以直接应用。

如有需要,可以修改这个启动脚本。修改处主要是一些文件和目录配置

cp /home/postgres/postgresql-9.5.3/contrib/start-scripts/linux /etc/init.d/postgresql


15. 添加开机启动和服务

update-rc.d postgresql defaults

(或者用 chkconfig --add postgresql。实际发现,在Debian下,还是update-rc.d管用)


16.  初始化数据库

initdb -D /usr/local/pgsql/data

会创建一个数据库postgres



17. 修改/usr/local/pgsql/data/pg_hba.conf文件,允许远程访问。下面第三行的格式,允许所有远程地址访问

# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
host    all             all             0.0.0.0/0               md5


18. 修改/usr/local/pgsql/data/postgresql.conf 文件,初步修改的地方有:

listen_addresses = '*'  #允许监听所有来的地址。如果不带开,远程连接会被拒绝。报错就是 Connection refused

logging_collector = on  #把logging打开

log_line_prefix = '%t'  #把logging的时间戳打印出来

timezone='PRC'   #把时区改为中国时区

log_timezone='PRC'




19. 启动数据库

/etc/init.d/postgresql start

或者service postgresql start

其他命令选项有 stop restart reload


20. 本地连接到数据库,修改数据库用户postgres的密码

psql

这样直接以当前linux用户身份,即postgres连接到本地数据库

psql#\l  命令查看数据库

psql#\du 命令查看用户

执行修改密码的sql命令:alter role postgres password 'newpassword';


21. 远程连接

远程用psql或者pgAdmin连接数据库

psql连接如下

psql -h your_db_server_ip -p 5432 -U postgres -d postgres -W

其中-W参数要求询问输入密码


至此,安装基本结束,数据库可用。


22. 为安全起见,修改 /etc/sudoers,去掉用户postgres的sudo权限。


23. 配置Stream Replication的过程,详细见以下链接中的"How to user"部分,里面的步骤经过测试没有问题。

https://wiki.postgresql.org/wiki/Streaming_Replication

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值