预装环境
# ubuntu
sudo apt-get install build-essential
sudo apt install libreadline-dev
sudo apt-get install zlib1g.dev
#centos
yum install readline-devel
yum install zlib-devel
编译安装
下载源码
wget https://ftp.postgresql.org/pub/source/v9.6.10/postgresql-9.6.10.tar.gz
解压安装
tar zxvf postgresql-9.6.10.tar.gz
cd postgresql-9.6.10/
./configure --with-perl --with-tcl --with-openssl --with-ossp-uuid --with-libxml --with-libxslt --enable-tap-tests --enable-debug
make -j
sudo make install
添加用户
adduser postgres
passwd postgres
启动数据库
mkdir -p /var/postgresql/data
chown postgres:postgres /var/postgresql -R
chown postgres:postgres /usr/local/pgsql -R
切换用户配置环境变量
su - postgres
export PATH=/usr/local/pgsql/bin:$PATH
初始化数据库和启动服务
initdb -D /var/postgresql/data
pg_ctl -D /var/postgresql/data -l /var/postgresql/logfile start
进入pg
psql
gdb 无法正常使用
修改源代码下面最外层的 configure
文件
其中5223行开始的一段代码改为
if test "$ac_env_CFLAGS_set" = set; then
CFLAGS=$ac_env_CFLAGS_value
elif test "${CFLAGS+set}" = set; then
: # (keep what template set)
elif test "$enable_coverage" = yes; then
: # no optimization by default
elif test "$enable_debug" = yes; then
CFLAGS="-O0"
elif test "$GCC" = yes; then
CFLAGS="-O2"
fi
主要修改的就是最后两个elif,不然的话无论怎么 enable debug,只要用GCC编译都会自动开启O2优化。不知道为什么社区到现在都没修这个bug
开放远程连接
vi /var/postgresql/data/postgresql.conf
# 将listen_address修改成 *
listen_addresses = '*' # what IP address(es) to listen on;
vi /opt/PostgreSQL/10/data/pg_hba.conf
# 末尾添加
host all all 0.0.0.0/0 md5
host replication all 120.55.100.50/0 trust # 逻辑复制
修改用户密码
ALTER USER postgres PASSWORD 'xxx';