postgres源码安装

  1. 下载源代码:wget https://ftp.postgresql.org/pub/source/v9.6.12/postgresql-9.6.12.tar.gz
  2. 解压源码:tar -zxvf postgresql-9.6.12.tar.gz
  3. 创建编译目录:mkdir -p postgresql-9.6.12/build
  4. 安装依赖包:yum install -y gcc perl bison perl-ExtUtils-Embed flex readline-devel zlib zlib-devel openssl-devel libxml2-devel openldap-devel libxslt-devel pam-devel uuid* tcl tcl-devel python-devel bzip2 unzip
  5. 配置编译安装环境和选项:../configure --prefix=/usr/local/postgres --with-perl --with-python --with-ldap --with-openssl --with-ossp-uuid --with-libxml  --with-tcl --with-pam --with-libxslt --enable-thread-safety
  6. 编译源码:make
  7. 安装数据库: make install
  8. 编译安装扩展插件
    1. 切换目录: cd contrib
    2. 编译源码: make
    3. 安装扩展插件: make install
  9. 切换目录 cd ../../
  10. 下载scws源码: wget http://www.xunsearch.com/scws/down/scws-1.2.2.tar.bz2
  11. 解压源码: tar -xvf scws-1.2.2.tar.bz2
  12. 切换当前目录:cd scws-1.2.2
  13. 配置编译安装环境和选项:./configure --prefix=/usr/local/postgres/scws
  14. 编译源码: make
  15. 安装动态库: make install
  16. 下载zhparser源码: wget https://github.com/amutu/zhparser/archive/master.zip
  17. 解压源码:unzip master.zip
  18. 切换目录: cd zhparser-master/
  19. 配置PostgreSQL环境变量:export PATH=$PATH:/usr/local/postgres/bin
  20. 编译安装:SCWS_HOME=/usr/local/postgres/scws make && make install

 

  1. 创建PostgreSQL用户和组: useradd postgres
  2. 创建PostgreSQL数据目录: mkdir -p /data/psql
  1. 切换目录的所有者: chown -R postgres:postgres /data/psql
  2. 为postgres用户准备环境变量:vi /home/postgres/.bashrc
    1. 添加如下内容:

export PG_HOME=/usr/local/postgres

export PATH=$PATH:$PG_HOME/bin

export LD_LIBRARY_PATH=$PG_HOME/lib

  1. 切换postgres用户:su - postgres
  2. 初始化数据库:pg_ctl init -D /data/psql/
  3. 用户访问授权: vi /data/psql/pg_hba.conf,
    1. 添加一下内容:host all  dbcenter 0.0.0.0/0 md5,允许dbcenter用户在任何网络中访问所有数据库
    2. 第一个为host表示允许远程访问;第二个为数据库名称;第三个为用户名;第四个为允许的IP地址;第五个为认证方式
  4. 启动数据库服务:pg_ctl start -D /data/psql
  5. 进入数据库交互界面:psql
    1. 创建用户dbcenter: create user dbcenter superuser nocreatedb login encrypted password '12345678';
      1. 该用户是超级用户,但是不能创建数据库实例
    2. 创建数据库实例:  create database demo encoding=utf8 owner=dbcenter;

 

创建PostgreSQL自启动脚本 vi /usr/lib/systemd/system/postgres.service

[Unit]

Description=PostgreSQL database server

After=network.target

 

[Service]

Type=forking

User=postgres

Group=postgres

 

ExecStart=/usr/local/postgres/bin/pg_ctl start -D /data/psql

ExecStop=/usr/local/postgres/bin/pg_ctl stop -D /data/psql -M fast

ExecReload=/usr/local/postgres/bin/pg_ctl reload -D /data/psql

 

[Install]

WantedBy=multi-user.target

 

将启动脚本添加到开机启动清单中

systemctl daemon-reload

将PostgreSQL数据库设为开机启动

systemctl enable postgresql.service

检查PostgreSQL是否开机启动

systemctl is-enabled postgresql.service

### 编译并安装PostgreSQL #### 准备工作 为了成功编译和安装PostgreSQL,需要确保Linux环境中已经安装了必要的开发工具和支持库。通常这包括GCC编译器、make构建工具以及一些其他的依赖项[^1]。 对于基于Debian/Ubuntu系统的机器来说,可以通过运行如下命令来获取这些必需品: ```bash sudo apt-get update && sudo apt-get install build-essential libreadline-dev zlib1g-dev flex bison ``` 而对于Red Hat/CentOS系统,则可以执行下面这条指令完成相同目的: ```bash sudo yum groupinstall &#39;Development Tools&#39; && sudo yum install readline-devel zlib-devel flex bison ``` #### 下载源代码 前往官方网址下载所需版本的PostgreSQL压缩包文件`pgsql11.5_Linux.tar.gz`。也可以通过Git克隆最新的稳定分支到本地计算机上进行操作。 如果选择了tarball方式获得软件包,在解压之后将会得到一个名为`postgresql-<version>`的新目录;而如果是git clone的话,默认会进入master分支下的最新提交状态。 #### 配置与编译过程 进入到刚才创建好的项目根目录内,按照以下步骤来进行配置和编译工作: ```bash cd postgresql-11.5/ ./configure --prefix=/usr/local/pgsql # 设置安装路径 make # 开始编译 ``` 这里需要注意的是,`--prefix`参数指定了最终程序及其资源应该被放置的位置。可以根据实际情况调整此选项指向其他地方。 #### 测试编译结果 (可选) 在正式部署之前建议先验证一下刚刚制作出来的二进制文件是否正常运作。为此只需简单地输入下列命令即可: ```bash make check # 执行测试套件 ``` 该动作可能会花费一定时间去跑完所有的单元测试案例集。一旦全部通过就意味着一切就绪! #### 正式安装 当确认无误后就可以继续前进到最后一步——实际安装配送环节啦: ```bash sudo make install # 将目标文件复制至指定位置 ``` 此时整个流程就算大功告成咯~不过别忘了还要初始化一个新的数据库集群才行哦~ #### 初始化数据目录 最后但同样重要的一环就是建立初始的数据存储空间啦: ```bash /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data # 创建默认实例的工作区 ``` 以上便是完整的从头开始搭建属于自己的PostgreSQL服务器的方法概述。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值