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
建立 postgres 的 linux
作業系統組和賬戶
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