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