1. 程式人生 > >PostgreSQL 9.6 SUSE 環境搭建(一)

PostgreSQL 9.6 SUSE 環境搭建(一)

postgresql 安裝與部署

搭建環境步驟

環境配置要求

1、GNU make version 3.80 (可通過make  --version 檢視)
2、c編譯環境(要符合c89標準),GCC版本推薦最新
3、磁碟空間最少150MB,(Linux 可通過df 命令檢視)

軟體下載

1、  [ PostgreSQL下載地址 ](https://www.postgresql.org/ftp/source/)
2、  [ readline下載地址 ] (http://ftp.gnu.org/gnu/readline/readline-7.0.tar.gz)
3、  [ zlib下載地址 ] http://www.zlib.net/zlib-1.2.11.tar.gz
     本次下載 postgresql-9.6.3.tar.gz (9.x和10.x 安裝方法相同)
  • 注意以下解壓和安裝軟體都在 root 許可權下進行的

檢查和配置postgres使用者(是否該環境有當前使用者),用於資料庫使用者

clw-db1:~ # cat /etc/passwd | grep postgres

clw-db1:~ # id postgres
id: postgres: No such user

建立 postgreslinux 作業系統組和賬戶

clw-db1:~ # groupadd -g 10000 postgres
clw-db1:~ # useradd -g 10000 -u 10000 postgres

校驗使用者

clw-db1:~ # id postgres
uid=10000(postgres) gid=10000(postgres) groups=16(dialout),33(video),10000(postgres)

建立 postgres 使用者 home 目錄,存放 postgres 使用者的記錄(bash、profile、shell等)

clw-db1:~ # mkdir /home/postgres
clw-db1:~ # chown postgres.postgres /home/postgres/
clw-db1:~ # usermod -d /home/postgres postgres

安裝PostgreSQL 9.6

上傳原始碼和依賴包到指定目錄略(postgresql-9.6.6.tar.gz、readline、zlib)

解壓 PostgreSQL 9.6.8

clw-db1:~/pgsoft # tar -xf readline-7.0.tar.gz 
clw-db1:~/pgsoft # tar -xf zlib-1.2.11.tar.gz 
clw-db1:~/pgsoft # tar -xf postgresql-9.6.8.tar.gz

首先安裝 readline 依賴

clw-db1:~/pgsoft/readline-7.0 # ./configure 
clw-db1:~/pgsoft/readline-7.0 # make && make install

其次安裝 zlib 依賴

clw-db1:~/pgsoft/zlib-1.2.11 # make
clw-db1:~/pgsoft/zlib-1.2.11 # make install

最後安裝PostgreSQL 9.6.8,本次安裝忽略安裝readline(記錄歷史sql命令查詢)依賴

clw-db1: mkdir -p /opt/pgsql-9.6                  # 建立軟體安裝目錄 /opt/pgsql-9.6
clw-db1: chown postgres.postgres -R /opt          # 為建立的目錄分配所屬使用者和組為 postgres
clw-db1:~/pgsoft/postgresql-9.6.8 # cd /pgsoft/postgresql-9.6.8/   #進入解壓後的postgresql 目錄
clw-db1:~/pgsoft/postgresql-9.6.8 # ./configure --prefix=/opt/pgsql-9.6 --without-readline
  • 引數說明
./configure :為linux原始碼編譯安裝檢查命令,檢查軟體安裝所需環境是否正常
--prefix :為指定軟體的編譯安裝的目錄,
--wihtout-readline --without表示忽略檢查,-readline 表示忽略安裝的軟體包,
  即忽略readline 依賴包的檢查,該包用於 在psql命令列中記錄命令,可進行上下翻滾
  檢視歷史命令,建議最好安裝,不要進行忽略,即不要指定該引數 --without-readline 

檢視機器CPU核數,process 表示CPU核數從0開始

 cat /proc/cpuinfo |grep less

編譯時 world 為安裝postgresql 安裝包下所有軟體, 使用 -j 8(該引數可忽略) 指定8核編譯;

clw-db1:~/pgsoft/postgresql-9.6.8 # make world -j 8

make 後看到“PostgreSQL, contrib, and documentation successfully made. Ready to install.”說明編譯成功。

開始安裝,- world 表示安裝所有安裝包自帶的軟體和擴充套件

clw-db1:~/pgsoft/postgresql-9.6.8 # make install-world

執行命令後看到“PostgreSQL, contrib, and documentation installation complete.”說明安裝成功。

  • 安裝成功後可到指定的 /opt/pgsql-9.6 安裝目錄下檢查是否包含以下目錄
lib 、include 、share等

檢查安裝 postgreSQL 版本是否為 9.6

clw-db1:~/pgsoft/postgresql-9.6.8 # /opt/pgsql-9.6/bin/postgres --version

postgres (PostgreSQL) 9.6.8

初始化資料目錄

建立資料庫及相關目錄

clw-db1:~ # mkdir -p /pgdata/9.6/poc/{data,archive,scripts,backup}

目錄名稱可自定義

data : 資料庫存放目錄, 必需
archieve : 日誌歸檔存放目錄,非必需
scripts : 指令碼存放目錄(故障轉移、日誌清理等)非必需
backup : 備份存放目錄 非必需

配置上面建立的目錄所屬使用者和組(postgres.postgres中的 .: 等同,看個人愛好)

clw-db1:~ # chown -R postgres.postgres /pgdata/9.6

表示把/pgdata/9.6 目錄下所有檔案都分配給 postgres使用者和組,-R 表示遞迴

檢查資料目錄,“-“ 表示會自動切換到之前建立的使用者的home目錄下

clw-db1:~ # su - postgres
postgres@clw-db1:~> 
postgres@clw-db1:~> pwd
/home/postgres
postgres@clw-db1:/pgdata/9.6/poc> cd /pgdata/9.6/poc/
postgres@clw-db1:/pgdata/9.6/poc> 
postgres@clw-db1:/pgdata/9.6/poc> ll
total 16
drwxr-xr-x 2 postgres postgres 4096 May  3 15:44 archive
drwxr-xr-x 2 postgres postgres 4096 May  3 15:44 backup
drwxr-xr-x 2 postgres postgres 4096 May  3 15:44 data
drwxr-xr-x 2 postgres postgres 4096 May  3 15:44 scripts

執行 /opt/pgsql-9.6/bin/initdb 進行 初始化資料目錄

[email protected]-db1:/pgdata/9.6/poc> /opt/pgsql-9.6/bin/initdb -D /pgdata/9.6/poc/data/ -E UTF-8 --locale=zh_CN.UTF-8
-D 表示指定資料庫存放目錄
-E 表示 指定字符集編碼 

data 目錄許可權會自動修改為0700許可權,ll 檢查目錄許可權是否為rwx (r=4,w=2,x=1)也可手動配置,r為讀許可權 w為寫許可權 x為執行許可權。

[email protected]-db1:/pgdata/9.6/poc> ll
total 16
drwxr-xr-x  2 postgres postgres 4096 May  3 15:44 archive
drwxr-xr-x  2 postgres postgres 4096 May  3 15:44 backup
drwx------ 19 postgres postgres 4096 May  3 15:54 data
drwxr-xr-x  2 postgres postgres 4096 May  3 15:44 scripts

手動配置

chmod 0700 /data

啟動和停止

修改 postgresql.conf 配置檔案,該檔案在初始化時指定的資料庫 data 目錄下

postgres@clw-db1:~> vim /pgdata/9.6/poc/data/postgresql.conf 

編輯配置檔案並修改以下引數如下:

  • 必須引數
listen_addresses = '*'        
port = 5432  
log_destination = 'csvlog'
logging_collector = on
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' 
  • 可選引數 (可跳過以下引數) 配置
max_connections = 100    
superuser_reserved_connections = 10    
shared_buffers = 32GB    
maintenance_work_mem = 2GB      
shared_preload_libraries = 'pg_stat_statements'
wal_level = logical    
archive_mode = on    
archive_command = '/bin/true'   
max_wal_senders = 10    
max_replication_slots = 10  
hot_standby = on    
random_page_cost = 1.1        
effective_cache_size = 64GB  

通過 /opt/pgsql-9.6/bin/pg_ctl 啟動 PostgreSQL 服務

[email protected]-db1:~> /opt/pgsql-9.6/bin/pg_ctl -D /pgdata/9.6/poc/data/ start
server starting
[email protected]-db1:~> LOG:  redirecting log output to logging collector process

-D 表示指定初始化的資料庫目錄

看到以下行說明啟動成功:

2018-05-03 16:19:00.067 CST,,,20626,,5aeac5f2.5092,2,,2018-05-03 16:18:58 CST,,0,LOG,00000,"database system is ready to accept connections",,,,,,,,,""

建立必要的資料庫,/opt/pgsql-9.6/bin/psql 為postgresql 的命令列連線命令

postgres@clw-db1:~> /opt/pgsql-9.6/bin/psql -p 5432 -U postgres postgres
psql (9.6.8)
Type "help" for help.

postgres=# 
postgres=# CREATE DATABASE pocdb;
CREATE DATABASE
  • 引數說明
-p 表示PostgreSQL資料庫的埠號,預設5432 -U 表示登入使用者為 postgres 
第二個 postgres 表示為連線的資料庫名稱 

建立 user (非必須操作):

postgres=# \c pocdb
You are now connected to database "pocdb" as user "postgres".
pocdb=# 
pocdb=# 
pocdb=# CREATE USER repl ENCRYPTED PASSWORD '123456' REPLICATION;
CREATE ROLE
  • 引數
\c 表示切換資料庫,pocdb 為資料庫名稱

驗證使用者:

pocdb=# \du+                   # \du 表示查詢當前資料下所有使用者和擁有的許可權
                                          List of roles
 Role name |                         Attributes                         | Member of | Description 
-----------+------------------------------------------------------------+-----------+-------------
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}        | 
 repl      | Replication                                                | {}        | 

退出連線

pocdb=# \q         #\q 表示退出當前postgreSQL命令列
postgres@clw-db1:~> 

完成安裝

若需要從pgAdmin遠端訪問該資料庫,則需要連線資料庫為預設使用者 postgres 修改密碼,建議第一次記登陸後,執行該操作

postgres=# ALTER USER postgres WITH PASSWORD '123456';
ALTER ROLE
postgres=#

修改 pg_hba.conf 配置檔案,指定 IP 為192.168.0.124 的所有使用者通過密碼認證進行連線該伺服器上所有資料庫

[email protected]:/pgdata/10/poc/data> vi pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             192.168.0.124/32         md5
"pg_hba.conf" 96L, 4652C                                                
  • 引數說明
host 表示當前主機 第一個all表示該主機所有的資料庫,可具體指定資料庫名稱
第二個 all 表示所有使用者 ,可指定具體使用者 第四個IP地址,可設定為0.0.0.0./0
表示所有ip地址 ,最後一個md5 表示進行md5加密密碼認證   

修改上述配置檔案後需要 重啟服務 ,然後IP地址為 192.168.0.124 就可以使用pgAdmin 通過
postgres 使用者,密碼為 123456 進行客戶端連線。

  • 重啟 服務命令
 /opt/pgsql-9.6/bin/pg_ctl -D /pgdata/9.6/poc/data restart

常見問題Q&A

1、編譯檢查時,提示沒有依賴包 readline , zlib 導致編譯檢查失敗?

  • 出現此問題,請到對應網站下載該包,也可以忽略安裝,但是會導致一些後期資料庫操作的不方便,建議最好下載安裝

2、若在操作過程中遇到 Permission Dennied ,或者許可權不足問題?

  • 安裝軟體首先需要使用者為 root 或者擁有 root 許可權,若提示提示 沒有許可權 操作檔案時,請通過 ll 命令檢視該檔案,確認該檔案所屬主使用者是否為當前使用者,若不是則可通過
    chown postgres.postgres /home -R 分配所屬主,無執行許可權則可通過 chmod 700 test 提升許可權,test 為檔名

3、postgreSQL預設埠為 5432 ,若埠被佔用,可通過修改配置檔案 pg_hba.conf 來修改埠號,修改配置檔案需要重啟服務.

注意

  • 請不要隨意刪除安裝的資料庫 data 目錄下的任意檔案,防止發生不可恢復的錯誤

    本教程主要便於後期多環境部署,沒有配置環境變數,故每次啟動、停止等命令需要指定具體目錄,詳細配置環境
    變數可參考安裝PostgreSQL 10.x的安裝教程。
    若有問題可聯絡 QQ:976124272 進行探討,歡迎共同探討技術。

相關推薦

PostgreSQL 9.6 SUSE 環境搭建

postgresql 安裝與部署 搭建環境步驟 環境配置要求 1、GNU make version 3.80 (可通過make --version 檢視) 2、c編譯環境(要符合c89標準),GCC版本推薦最新 3、磁碟空間最少150MB,(Li

項目進階 之 集群環境搭建概述

問題 特點 多臺 cpu 好的 content 成了 系統資源 通過 今天我們說一個不是特別新,但近期今年伴隨大數據熱而比較火的一個技術-集群技術。 什麽是集群技術 集群(Cluster)技術是指一組相互犭蟲立的計算機,利用快速通信網絡組

Vue2.0新手入坑環境搭建

clas min 團隊 定義 自定義 ini 創建 https idt 每周不定期更新 專業團隊接APP 外包 聯系QQ1129580542 vue-cli 是一個官方發布 vue.js 項目腳手架,使用 vue-cli 可以快速創建 vue 項目,GitHu

SpringCloud運行環境搭建Centos7.0下jdk的安裝

mage ech 目錄 img 生效 deploy 服務 web tro 一、運行環境 1、jdk下載安裝 1.1、下載 地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 1.2、安

jenkins+ant+jmeter自動化環境搭建

什麽 bsp put show e-mail ram 1.0 哪裏 miss 寫在最前面: jmeter:測試接口的工具,支持java語言; ant:Apache Ant是一個Java庫和命令行工具,其任務是將構建文件中描述的進程作為

Android自動化之Monkey環境搭建

OS 安卓系統 我們 cmd 工具 jdk 自動化 monk 檢查 從事測試行業兩年了,一直很喜歡研究新技術,但是最近有點慵懶。正好公司新出了產品,督促我學習monkey用來測其穩定性。 網上搜索了很久,內容總是很零散,通常需要找幾篇文章才能搭好環境。特寫此文,一篇文章搞定

嵌入式開發環境搭建 虛擬機實現橋接Ethernet網口 並且通過WIFI進行NAT聯網

war bubuko 搭建服務器 6.4 網線 16.4 聯網 橋接 圖片 背景:   目前手頭上有一塊JZ2440的板子,之前有搭建完整套開發環境,由於虛擬機故障需要從新搭建服務器端,故在此記錄搭建步驟 環境:   Ubuntu16.4   VMWare 12 先行條件:

Appium+python移動端自動化測試-環境搭建

過程 .com oid pytho 安裝環境 測試 ID alt ppi 搭建所在系統環境:Windows7版本64位系統 一、環境準備 jdk8.0.151 android-sdk_r20.3.4-windows python3.5 appium1.4.16

Docker for Windows安裝與Linux+PHP開發環境搭建

Docker是什麼? 簡單得來說,Docker是一個由GO語言寫的程式執行的“容器”(Linux containers, LXCs); 目前雲服務的基石是作業系統級別的隔離,在同一臺物理伺服器上虛擬出多個主機。Docker則實現了一種應用程式級別的隔離; 它改變我們基本的開發、操作單元,

linux 核心模組程式設計之環境搭建

這裡介紹些關於Tiny6410開發板核心的編譯,為後期驅動開發做前期的準備。 開發環境:64位的Ubuntu 14.01虛擬機器 目標機:友善之臂Tiny6410開發板 核心:linux-2.6.38-20110325.tar.gz 核心原始碼下載地址 htt

SpringMVC 學習 八 SSM環境搭建 web.xml配置

第一步:匯入jar包, 第二步:配置web.xml 在web.xml中,主要的配置內容有以下幾點 (1)spring容器配置檔案的位置 <!-- spring配置檔案位置 --> <context-param> <param-name>cont

瞎折騰之個人學習環境搭建:安裝XenServer

背景介紹 家裡只有一臺安裝WIN10的筆記本可供在下折騰,在下先安裝了個VMware® Workstation 12 Pro,計劃建立一臺虛擬機器安裝XenServer,再得用XenServer虛擬3臺Centos7,夠折騰的吧,其實如果僅虛擬Centos7,可以直接使用VMwar

React的環境搭建

1  檢查是否安裝  node  npm    2  init  npm    按照提示新增內容  後使用ctrl + C 退出   3 檢查是否安裝&nbs

VsCode + node+ vue.js 開發環境搭建

1.安裝最新的 vscode ,這個很容易安裝。 2.要在機器上開發 vue.js 有兩種模式,一種直接用 .js ,這種方式不用 安裝.node  環境,另一種用 webpack, 3.在機器安裝 node node-v10.8.0-x64.msi,在安裝過程中可能會出

SpringMVC環境搭建

Spring MVC為展現層提供的基於MVC設計理念的優秀Web框架,是目前最主流的MVC框架之一。 Spring 3.0之後完全超越Struts2,稱為最優秀的MVC框架。學完SpringMVC之後,瞬時間就能讓你感到Struts2帶給你的殘酷。 Spring MVC通過一套MVC註解,讓POJO稱為處

Django學習筆記之環境搭建

           Django是一個高階的Python Web開發框架,它鼓勵快速開發,和實用的設計。它採用了MTV的設計模式,並且它由經驗豐富的開發人員來構建, 可以解決Web開發的諸多問題,因此也被稱為全棧Web開發框架。它是開源的,直接

ios自動化環境搭建

目錄 mac os下搭建基於appium的ios自動化環境,可以按以下幾個步驟進行: 1、安裝homebrew Homebrew是一款Mac OS平臺下的軟體包管理工具,擁有安裝、解除安裝、更新、檢視、搜尋等很多實用的功能。簡單的一條指令

React Native在window下的環境搭建

React Native官方開發文件   以下是本人抄錄的: 初次接觸React Native感覺和React很像,卻是有點類似,但不完全是,React Native有自己的元件物件,不過它也自定義的元件也是使用ES6中的語法定義。 首先是安裝的依賴,必須安裝:Node、React Nati

linux學習——PHP環境搭建

1.獲取軟體源列表,輸入sudo apt-get install 安裝軟體; 2.建立/soft檔案,並給所有權; sudo mkdir /soft sudo chmod -R 777 soft 3.下載並安裝lnmp1.5整合環境 wget http://soft

centos下Docker環境搭建

Docker是一個能夠把開發的應用程式自動部署到容器的開源引擎,基於客戶端-伺服器架構c/s,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後釋出到任何流行的Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何介面。 Docker