做翻譯兼職的網(wǎng)站谷歌seo服務商
系統(tǒng)環(huán)境
下載壓縮包
下載壓縮包
解壓壓縮包
查看解壓文件
編譯安裝
編譯
安裝
用戶權限和環(huán)境變量設置
創(chuàng)建用戶
創(chuàng)建數(shù)據(jù)目錄和日志目錄
設置權限
設置環(huán)境變量
初始化數(shù)據(jù)庫
數(shù)據(jù)庫訪問控制配置文件
postgresql.conf
pg_hba.conf
PostgreSQL啟動與關閉
手動
自動
客戶端測試連接
設置用戶postgres密碼
DBeaver連接測試
系統(tǒng)環(huán)境
1.操作系統(tǒng):CentOS 7.6.1810
2.PostgreSQL版本: 16.0
下載壓縮包
官網(wǎng)地址:PostgreSQL: File Browser
下載壓縮包
wget https://ftp.postgresql.org/pub/source/v16.0/postgresql-16.0.tar.gz
解壓壓縮包
tar -xzvf postgresql-16.0.tar.gz
查看解壓文件
解壓之后會看到下面的文件
編譯安裝
編譯
進入postgresql-16.0目錄,編譯configure文件
./configure --prefix=/usr/local/pgsql
參數(shù):--prefix=/usr/local/pgsql
表示編譯好的文件放到目錄"/usr/local/pgsql"里,這個目錄不用用戶自己創(chuàng)建,編譯過程會自動創(chuàng)建。
注意事項:
PostgreSQL編譯過程會用到一些依賴的庫,如果你的操作系統(tǒng)比較舊,編譯過程可能會出現(xiàn)錯誤,告訴你要安裝缺少的依賴庫。
看到./config.status說明編譯完成,可以看見config.status文件
安裝
make && make install
完成以后,在"--prefix=/usr/local/pgsql"參數(shù)對應的"/usr/local/pgsql"的目錄就是我們所有PostgreSQL存放的文件,這里的這個data和log文件現(xiàn)在是沒有的。
用戶權限和環(huán)境變量設置
編譯安裝成功后,接下來要做的就是創(chuàng)建一個普通用戶,因為默認Linux超級用戶(root)不能啟動PostgreSQL,所以需要創(chuàng)建一個普通用戶來操作數(shù)據(jù)庫。
創(chuàng)建用戶
#創(chuàng)建用戶組postgres
groupadd postgres
#創(chuàng)建用戶postgres并設置groups、gid和家目錄
useradd -g postgres -G postgres -d /home/postgresql postgres
#設置用戶密碼
passwd postgres
創(chuàng)建數(shù)據(jù)目錄和日志目錄
注意當前路徑是在/usr/local/pgsql下
mkdir data log
設置權限
接下來需要設置權限,將/usr/local/pgsql (我們安裝PostgreSQL數(shù)據(jù)庫的目錄) 目錄全部賦權給postgres用戶
chown -R postgres.postgres /usr/local/pgsql/
設置環(huán)境變量
為了方便起見設置一下相關的環(huán)境變量,此處是要設置postgres用戶的環(huán)境變量,所以首先要把Linux的登陸用戶由root切換到以postgres用戶登陸。
su - postgres
因為我們創(chuàng)建Linux用戶"postgres"是指定了用戶的目為"/home/postgresql",所以登陸后顯示的目錄是:/home/postgresql
要創(chuàng)建環(huán)境變量,實際上就是對文件.bash_profile的修改,所以我們首先要找到這個文件,這個文件就在"/home/postgresql"里,由于這個文件是隱藏文件所以要加-a參數(shù)
ll -a
編輯.bash_profile文件
vim .bash_profile
添加下面的內(nèi)容
使配置的環(huán)境變量生效
source /home/postgresql/.bash_profile
檢查是否生效
psql -V
看到安裝PostgreSQL的版本號則代表生效
初始化數(shù)據(jù)庫
新安裝的PostgreSQL數(shù)據(jù)庫系統(tǒng),要先初始化基本的基礎數(shù)據(jù)庫,然后我們才能在上面創(chuàng)建我們自己的數(shù)據(jù)庫。初始化數(shù)據(jù)庫的指令是"initdb",這個指令位于"/usr/local/pgsql/bin/"
我們可以用指令"initdb --help"看看這個文件的幫助信息。
如上圖,可以看到在使用"initdb"進行初始化的時,可以指定參數(shù)進行一些初始化工作,例如指定pgdata(postgresql數(shù)據(jù)庫目錄)、指定encoding(編碼)、指定數(shù)據(jù)庫超級用戶的用戶名和密碼等等。注意,如果pgdata目錄沒有指定,則會默認使用環(huán)境變量中的PGDATA指定的目錄作為數(shù)據(jù)庫存放的目錄,由于之前我們剛剛設置了"PGDATA=/usr/local/pgsql/data"環(huán)境變量,所以此處我們也就無需再額外指定,直接執(zhí)行初始化命令即可。
initdb
若是執(zhí)行initdb看到下面報錯,說明現(xiàn)在登陸的不是postgres用戶,需要切換到postgres用戶來執(zhí)行initdb命令
看到下面信息就代表成功
同時在"/usr/local/pgsql/data]"的目錄可以看到生成的數(shù)據(jù)和配置文件等。
- base目錄是表空間目錄
- global目錄是相關全局變量的目錄
- pg_hba.conf是訪問控制配置,127.0.0.1改為信任的客戶端ip網(wǎng)段使其可以遠程訪問
- postgresql.conf是PostgreSQL主配置文件,"listen_address=localhost"改為"*"使其監(jiān)聽整個網(wǎng)絡,方便起見我這里將pg_hba.conf的ip地址修改為0.0.0.0/0,而加密方式改為md5,就表示需要密碼訪問,算是提供一個最低級的安全防護
數(shù)據(jù)庫訪問控制配置文件
主要是配置postgresql.conf 和 pg_hba.conf 個。
- postgresql.conf 針對實例的配置
- pg_hba.conf 針對數(shù)據(jù)庫訪問的控制
postgresql.conf
vim postgresql.conf
找到"#port"和"#listener_address"這兩個參數(shù),這兩個參數(shù)是相鄰的,將兩行行首的"#"刪除。
將"listen_addressee='localhost'"改為當前服務器的IP,如果改為
"listen_addressee='*'",將監(jiān)聽整個網(wǎng)絡。
默認的監(jiān)聽端口是5432,可以自行指定另外一個端口號。
max_connections是客戶端最大的連接數(shù), 缺省值100有點少,特別是業(yè)務系統(tǒng),可以調(diào)整成1000或者更高。
pg_hba.conf
vim pg_hba.conf
將紅框設置為 10.10.100.0/24,意思是10.10.100網(wǎng)段的IP 連接此服務器上的PostgreSQL. 如果想允許所有IP都可以連接此服務器,則可以配置成0.0.0.0/0,但這樣是不安全的,可以把trust改為md5,表示需要密碼訪問,算是提供一個最低級的安全防護。
PostgreSQL啟動與關閉
手動
啟動與關閉數(shù)據(jù)庫是執(zhí)行pg_ctl命令,在執(zhí)行時,需要指定數(shù)據(jù)庫路徑和日志文件路徑,格式如下。
pg_ctl -D <數(shù)據(jù)存放路徑> -l <日志文件路徑> [ stop | start ]
如果已經(jīng)指定了環(huán)境變量PGDATA,"數(shù)據(jù)存放路徑"參數(shù)可以省略。
pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/log/pg_server.log start
自動
此步驟需要root用戶操作,如果你是用PostgreSQL的用戶postgres登陸的話,要用exit指令退出,回到root登陸才能操作。
PostgreSQL解壓后的安裝包目錄中提供了數(shù)據(jù)庫啟動與關閉的腳本,此腳本不但可以幫助我們簡化操作,而且可以用作開機啟動的腳本和service/systemctl 控制服務的腳本。目錄里"linux"文件就是我們要找的文件。
如果找不到linux文件可以執(zhí)行下面命令查看
find / -name macos
把文件"linux"拷貝到目錄"etc/init.d/"下,并改名為postgresql。
把腳本文件"postgresql"加入到開機啟動的程序列表。
賦予"postgresql"文件有執(zhí)行的權限。
cp /opt/postgresql/postgresql-16.0/contrib/start-scripts/linux /etc/init.d/postgresql
chkconfig --add postgresql或者systemctl enable postgresql
chmod 755 /etc/init.d/postgresql
主要設置文件"postgresql"的四個變量的值。
vim /etc/init.d/postgresql
prefix 是軟件的安裝路徑
PGDATA 是數(shù)據(jù)存放路徑
PGUSER 是啟動PostgreSQL服務器的用戶
PGLOG 是日志文件
以后可以開機啟動和通過service命令控制啟動和關閉了。
service postgresql start/stop
客戶端測試連接
可以通過PostgreSQL自帶的客戶端工具程序psql來進行連接,這個psql指令文件位于/usr/local/pgsql/bin目錄下,因為我們做了變量環(huán)境設置,所以可以在任何目錄下直接輸入psql連接PostgreSQL服務器。溫馨提示:用客戶端程序psql連接數(shù)據(jù)庫前,要把當前Linux登陸用戶從root切換到postgres用戶,這個是我們創(chuàng)建的PostgreSQL的超級用戶。
su - postgres
psql
可以看到,已經(jīng)連接上了數(shù)據(jù)庫服務器。
設置用戶postgres密碼
postgres=# \password
命令"\l"是顯示數(shù)據(jù)庫。更多的SQL操作命令可以參考PostgreSQL的官方文檔。退出pgsql客戶端命令是"\q"或者exit
DBeaver連接測試
測試連接成功
PostgreSQL安裝到此完畢。