postgresql資料庫部署

来源:https://www.cnblogs.com/wangguangtao/archive/2019/05/23/10910648.html
-Advertisement-
Play Games

運維開發技術交流群歡迎大家加入一起學習(QQ:722381733) 一、postgresql資料庫部署 1、前往postgresql安裝包的目錄(這裡我部署的是10.5的版本) 2、解壓縮包 3、進入解壓後生成的目錄文件進行編譯 4、提示如下信息是缺少包文件 5、安裝相應的包文件文件 6、安裝完成後 ...


運維開發技術交流群歡迎大家加入一起學習(QQ:722381733)

一、postgresql資料庫部署

  1、前往postgresql安裝包的目錄(這裡我部署的是10.5的版本)

[root@web1 ~]# cd /package/
[root@web1 package]# ls
apache-tomcat-8.5.39.tar.gz  jdk-8u131-linux-x64.tar.gz  postgresql-10.5.tar.gz  redis-3.2.0.tar.gz
[root@web1 package]# 

  2、解壓縮包

[root@web1 package]# tar xf postgresql-10.5.tar.gz 
[root@web1 package]# ls
apache-tomcat-8.5.39.tar.gz  jdk-8u131-linux-x64.tar.gz  postgresql-10.5  postgresql-10.5.tar.gz  redis-3.2.0.tar.gz
[root@web1 package]# 

  3、進入解壓後生成的目錄文件進行編譯

[root@web1 postgresql-10.5]# ./configure --prefix=/usr/local/pgsql-10.5
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking which template to use... linux
checking whether NLS is wanted... no
checking for default port number... 5432
checking for block size... 8kB
checking for segment size... 1GB
checking for WAL block size... 8kB
checking for WAL segment size... 16MB

  4、提示如下信息是缺少包文件

checking for library containing readline... no
configure: error: readline library not found
If you have readline already installed, see config.log for details on the
failure.  It is possible the compiler isn't looking in the proper directory.
Use --without-readline to disable readline support.

  5、安裝相應的包文件文件

[root@web1 postgresql-10.5]#yum install ncurses* readline* zlib* -y
######################################
[root@web1 postgresql-10.5]# rpm -aq ncurses* readline* zlib*
readline-devel-6.2-10.el7.x86_64
zlib-static-1.2.7-18.el7.x86_64
ncurses-libs-5.9-14.20130511.el7_4.x86_64
ncurses-devel-5.9-14.20130511.el7_4.x86_64
readline-static-6.2-10.el7.x86_64
zlib-devel-1.2.7-18.el7.x86_64
readline-6.2-10.el7.x86_64
ncurses-base-5.9-14.20130511.el7_4.noarch
ncurses-5.9-14.20130511.el7_4.x86_64
zlib-1.2.7-18.el7.x86_64
[root@web1 postgresql-10.5]#

  6、安裝完成後重新編譯下

[root@web1 postgresql-10.5]# ./configure --prefix=/usr/local/pgsql-10.5
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking which template to use... linux
checking whether NLS is wanted... no
checking for default port number... 5432
checking for block size... 8kB
checking for segment size... 1GB
checking for WAL block size... 8kB
checking for WAL segment size... 16MB
checking for gcc... gcc

  7、解析文件(在postgresql-10.5目錄執行:make install),最後輸出結果沒提示異常【error】便可開始安裝了

rm -f pg_regress.o && ln -s ../../../src/test/regress/pg_regress.o .
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -Wl,--as-needed -Wl,-rpath,'/usr/local/pgsql-10.5/lib',--enable-new-dtags  -lpgcommon -lpgport -lpthread -lz -lreadline -lrt -lcrypt -ldl
make[2]: Leaving directory `/package/postgresql-10.5/src/test/isolation'
make -C test/perl all
make[2]: Entering directory `/package/postgresql-10.5/src/test/perl'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/package/postgresql-10.5/src/test/perl'
make[1]: Leaving directory `/package/postgresql-10.5/src'
make -C config all
make[1]: Entering directory `/package/postgresql-10.5/config'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/package/postgresql-10.5/config'
All of PostgreSQL successfully made. Ready to install.

 

  8、開始安裝(在postgresql-10.5目錄執行:make install),最後輸出結果沒提示異常【error】便表示安裝成功

/bin/install -c -m 644 Makefile.global '/usr/local/pgsql-10.5/lib/pgxs/src/Makefile.global'
/bin/install -c -m 644 Makefile.port '/usr/local/pgsql-10.5/lib/pgxs/src/Makefile.port'
/bin/install -c -m 644 ./Makefile.shlib '/usr/local/pgsql-10.5/lib/pgxs/src/Makefile.shlib'
/bin/install -c -m 644 ./nls-global.mk '/usr/local/pgsql-10.5/lib/pgxs/src/nls-global.mk'
make[1]: Leaving directory `/package/postgresql-10.5/src'
make -C config install
make[1]: Entering directory `/package/postgresql-10.5/config'
/bin/mkdir -p '/usr/local/pgsql-10.5/lib/pgxs/config'
/bin/install -c -m 755 ./install-sh '/usr/local/pgsql-10.5/lib/pgxs/config/install-sh'
/bin/install -c -m 755 ./missing '/usr/local/pgsql-10.5/lib/pgxs/config/missing'
make[1]: Leaving directory `/package/postgresql-10.5/config'
PostgreSQL installation complete.

  9、安裝完成後可以看到在/usr/local目錄上成了pgsql-10.5目錄

[root@web1 postgresql-10.5]# ll /usr/local/ |grep pgsql-10.5
drwxr-xr-x  6 root root   56 May 23 18:06 pgsql-10.5
[root@web1 postgresql-10.5]# 

  10、創建用戶及設置/usr/local/pgsql-10.5目錄文件屬主組

 

[root@web1 postgresql-10.5]# useradd postgres
[root@web1 postgresql-10.5]# chown -R postgres.postgres /usr/local/pgsql-10.5/
[root@web1 postgresql-10.5]# ll /usr/local/ |grep pgsql-10.5
drwxr-xr-x  6 postgres postgres   56 May 23 18:06 pgsql-10.5
[root@web1 postgresql-10.5]# 

 

  11、給/usr/local/pgsql-10.5目錄設置軟連接(方便查看和管理吧....)

[root@web1 postgresql-10.5]# ln -s /usr/local/pgsql-10.5/ /usr/local/pgsql
[root@web1 postgresql-10.5]# ll /usr/local/pgsql
lrwxrwxrwx 1 root root 22 May 23 18:15 /usr/local/pgsql -> /usr/local/pgsql-10.5/
[root@web1 postgresql-10.5]# 

  12、進入剛創建的postgres用戶

[root@web1 postgresql-10.5]# su postgres
[postgres@web1 postgresql-10.5]$ 

  13、設置環境變數(註意路徑)

[postgres@web1 ~]$ vim ~/.bash_profile

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH=$PATH:/usr/local/pgsql-10.5/bin
PGDATA=/usr/local/pgsql-10.5/data
export PGDATA
export PATH

  14、當前生效

[postgres@web1 ~]$ source ~/.bash_profile 
[postgres@web1 ~]$ 

  15、測試

[postgres@web1 ~]$ which psql
/usr/local/pgsql-10.5/bin/psql
[postgres@web1 ~]$ psql -V
psql (PostgreSQL) 10.5

  16、初始化資料庫(initdb --help查看講情),指定庫文件路徑

[postgres@web1 ~]$ initdb /usr/local/pgsql-10.5/data
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".

Data page checksums are disabled.

creating directory /usr/local/pgsql-10.5/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.

Success. You can now start the database server using:

    pg_ctl -D /usr/local/pgsql-10.5/data -l logfile start

[postgres@web1 ~]$ 

***在此就已經部署成功了,現在要做的就是修改下配置文件,優化下***

  17、前往文件安裝所在地,修改pg_hba.conf配置文件

[postgres@web1 data]$ cp pg_hba.conf pg_hba.conf.`date +%F`
[postgres@web1 data]$ vim pg_hba.conf
#######################################
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
#host    all             all             127.0.0.1/32            trust
host    all             all             0.0.0.0/0               md5     #所有ip都可以通過密碼連接
# IPv6 local connections:
host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     trust
host    replication     all             127.0.0.1/32            trust
######################################

  18、前往文件安裝所在地,修改postgresql.conf配置文件

[postgres@web1 data]$ cd /usr/local/pgsql/data/
[postgres@web1 data]$ cp postgresql.conf postgresql.conf.`date +%F`
[postgres@web1 data]$ vim postgresql.conf
#########################################
# - Connection Settings -

listen_addresses = '*'  #為了方便,監聽所有# what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost'; use '*' for all
                                        # (change requires restart)
#port = 5432                            # (change requires restart)
max_connections = 100                   # (change requires restart)
#superuser_reserved_connections = 3     # (change requires restart)
#unix_socket_directories = '/tmp'       # comma-separated list of directories
                                        # (change requires restart)
#unix_socket_group = ''                 # (change requires restart)
#unix_socket_permissions = 0777         # begin with 0 to use octal notation
#########################################

 

 

  19、創建log目錄用於存放開機日誌,及啟動資料庫

[postgres@web1 data]$ mkdir /usr/local/pgsql/log
[postgres@web1 data]$ pg_ctl start -l /usr/local/pgsql-10.5/log/pg_server.log
waiting for server to start.... done
server started
[postgres@web1 data]$ 

  20、檢查是否啟動,可以看日誌

[postgres@web1 data]$ lsof -i:5432
COMMAND    PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
postgres 25479 postgres    3u  IPv4  50990      0t0  TCP *:postgres (LISTEN)
postgres 25479 postgres    4u  IPv6  50991      0t0  TCP *:postgres (LISTEN)
[postgres@web1 data]$ netstat -lnutp|grep postgres
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN      25479/postgres      
tcp6       0      0 :::5432                 :::*                    LISTEN      25479/postgres      
[postgres@web1 data]$ ps -ef|grep postgres
root     24060  1297  0 18:17 pts/0    00:00:00 su postgres
postgres 24061 24060  0 18:17 pts/0    00:00:00 bash
postgres 25479     1  0 18:45 pts/0    00:00:00 /usr/local/pgsql-10.5/bin/postgres
postgres 25481 25479  0 18:45 ?        00:00:00 postgres: checkpointer process   
postgres 25482 25479  0 18:45 ?        00:00:00 postgres: writer process   
postgres 25483 25479  0 18:45 ?        00:00:00 postgres: wal writer process   
postgres 25484 25479  0 18:45 ?        00:00:00 postgres: autovacuum launcher process  
postgres 25485 25479  0 18:45 ?        00:00:00 postgres: stats collector process  
postgres 25486 25479  0 18:45 ?        00:00:00 postgres: bgworker: logical replication launcher  
postgres 25543 24061  0 18:46 pts/0    00:00:00 ps -ef
postgres 25544 24061  0 18:46 pts/0    00:00:00 grep --color=auto postgres
[postgres@web1 data]$ 

  21、進入庫的一些小操作

[postgres@web1 data]$ psql    #進入庫
psql (10.5)
Type "help" for help.

postgres=# \password    #設置密碼
Enter new password: 
Enter it again: 
postgres=# CREATE DATABASE name;       #創建庫
CREATE DATABASE
postgres=# \du    #查看用戶
                                   List of roles
 Role name |                         Attributes                         | Member of 
-----------+------------------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}

postgres=# 
postgres=# \l    #查看資料庫列表
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
-----------+----------+----------+-------------+-------------+-----------------------
 name      | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(4 rows)

postgres=# 
postgres=# create user test superuser password '123456';    #創建用戶及密碼
CREATE ROLE
postgres=# 

*****到此就大致部署完了,如有什麼問題以及不足之處,歡迎讀客線上批評****

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、多路徑的主要功能 多路徑一般配合存儲設備實現如下功能: 故障的切換和恢復 IO流量的負載均衡 磁碟的虛擬化 2、查看系統自帶的多路徑軟體是否安裝 [root@cluster01 ~]# rpm -qa |grep device-mapper device-mapper-event-libs-1. ...
  • 在web項目中,客戶端請求圖片、視頻等較大的靜態資源時,會占據比較大的流量。但是如果有非本站用戶通過盜鏈的方式獲取本站資源,這無疑是對伺服器資源的浪費。因此,通過配置nginx防盜鏈,以實現屏蔽盜鏈的請求,保護本站靜態資源。 ...
  • RT3883 SoC是為了WiFi存取點及路由器而設的雙頻802.11n系統單晶元,相容3t3rmac、BB、24/5GHz射頻、高性能500MHz MPS74KCCPU內核、USB主機和USB OTG、兩個千兆乙太網MAC、PCLE主機/設備和PCI主機/設備。 RT3883採用了Ralink的第 ...
  • 1、簡介 MegaCli 是LSI公司官方提供的SCSI卡管理工具,由於LSI被收購變成了現在的Broadcom,所以現在想下載MegaCli, 需要去Broadcom官網查找Legacy產品支持,搜索MegaRAID即可。 現在官方有storcli,storcli已經基本代替了megacli,整合 ...
  • nRF52832通過對藍牙5的支持,將藍牙低能量SoCs提升到下一個水平。它的心臟有一個ARM Cortex M4 CPU,運 行在64MHz,在短時間內完成應用和溝通任務。這樣可以使cpu處理更多的任務,或者恢復休眠模式,從而節省寶 貴的電池能量。 nRF52832和nRF52系列中的所有SoC都 ...
  • 原文鏈接:https://www.cnblogs.com/anyehome/p/9435371.htmlJAR包是Java中所特有一種壓縮文檔,其實大家就可以把它理解為.zip包。當然也是有區別的,JAR包中有一個META-INF\MANIFEST.MF文件,當你找成JAR包時,它會自動生成。JAR ...
  • 1、離線下載Vim及其所有依賴包 2、所有下載依賴包列表 3、一次性安裝所有依賴 ...
  • NTP服務是搭建集群的第一步,是保持時間的同步性,保持一致 服務端 首先下載:yum install ntp –y 而後打開配置文件:/etc/ntp.conf 配置文件里有很多內容,但只要留三行就足夠了。 第一行寫時鐘伺服器 :server 127.127.1.0 (127.127.1.0就是代表 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...