Linux服務(wù)器上的Postgresql 安裝與配置
首先說明下我安裝的是Postgresql 版本為12.4
官網(wǎng)下載地址:
https://ftp.postgresql.org/pub/source/v12.4/postgresql-12.4.tar.gz
1.準備
準備好 postgresql 的安裝包,以下操作以 12.4 版本為例。
建議使用 root 用戶新建普通用戶“postgres”僅用于安裝 postgresql 數(shù)據(jù)庫。
請在root用戶下操作,命令如下:
groupadd postgres
useradd postgres -d /home/postgres -g postgres
passwd postgres
請記住設(shè)計的密碼,如果密碼和用戶名重復(fù)還會提醒你,但是還是會生效
tips:如果忘記了新創(chuàng)建的用戶密碼,
請切換到root并使用命令格式:passwd+“用戶名”
會要求你輸入新密碼,并再重復(fù)輸入,同樣如果密碼和用戶名重復(fù)還會提醒你,但是還是會生效
2.安裝依賴的系統(tǒng)組件
切換到 root 用戶安裝依賴的系統(tǒng)組件,命令如下:
請先Su root
再執(zhí)行以下命令:
yum -y install gcc perl-ExtUtils-Embed readline-devel zlib-devel
openssl-devel pam pam-devel libxml2-devel libxslt-devel tcl tcl-devel
python-devel docbook-style-dsssl flex bison openjade
3.解壓并安裝(記得新建存放壓縮包的目錄并放入)
切換到 postgres 用戶
請先su postgres
在目錄下解壓安裝包:
tar -xvf postgresql-12.4.tar.gz
請記住你解壓的目錄,會多次用到!
請記住你解壓的目錄,會多次用到!
請記住你解壓的目錄,會多次用到!
進入解壓的目錄,
創(chuàng)建data和log目錄
mkdir /所在目錄/data
mkdir /所在目錄/log
執(zhí)行預(yù)編譯命令:
cd +所在目錄
./configure --prefix=/home/postgresql-12.4 --with-pgport=5432 --with-perl --with-tcl --with-python --with-openssl --with-pam --without-ldap --with-libxml --with-libxslt
解析這個命令中的每個參數(shù):
-
./configure
: 這是一個用于配置源碼安裝的腳本。它檢查系統(tǒng)上是否有必要的庫和工具,并設(shè)置編譯參數(shù)。 -
--prefix=/home/postgresql-12.4
: 這個參數(shù)設(shè)置了安裝路徑。所有 PostgreSQL 的文件和目錄都會被安裝到/home/postgresql-12.4
目錄下。 -
--with-pgport=5432
: 這設(shè)置了 PostgreSQL 服務(wù)器監(jiān)聽的端口號為 5432,這是 PostgreSQL 的默認端口。 -
--with-perl
: 啟用對 Perl 編程語言的支持,允許使用 Perl 語言編寫 PostgreSQL 的擴展。 -
--with-tcl
: 啟用對 Tcl 編程語言的支持,允許使用 Tcl 語言編寫 PostgreSQL 的擴展。 -
--with-python
: 啟用對 Python 編程語言的支持,允許使用 Python 語言編寫 PostgreSQL 的擴展。 -
--with-openssl
: 啟用 OpenSSL 支持,用于加密 PostgreSQL 的連接和數(shù)據(jù)傳輸。 -
--with-pam
: 啟用 PAM (Pluggable Authentication Modules) 支持,允許使用 PAM 進行用戶身份驗證。 -
--without-ldap
: 不啟用 LDAP (輕量級目錄訪問協(xié)議) 支持。這通常意味著 PostgreSQL 將不使用 LDAP 進行用戶認證。 -
--with-libxml
: 啟用對 libxml2 的支持,這是一個用于解析 XML 的庫。 -
--with-libxslt
: 啟用對 libxslt 的支持,這是一個用于轉(zhuǎn)換 XML 的庫。
總之,這個命令是為了配置 PostgreSQL 數(shù)據(jù)庫的安裝,設(shè)置安裝路徑、端口號,并啟用或禁用各種功能和庫的支持。
成功后的部分日志如下:
以下是日志不需要執(zhí)行
config.status: creating src/include/pg_config_ext.h
config.status: src/include/pg_config_ext.h is unchanged
config.status: creating src/interfaces/ecpg/include/ecpg_config.h
config.status: src/interfaces/ecpg/include/ecpg_config.h is unchanged
config.status: linking src/backend/port/tas/dummy.s to
src/backend/port/tas.s
config.status: linking src/backend/port/dynloader/linux.c to
src/backend/port/dynloader.c
config.status: linking src/backend/port/sysv_sema.c to
src/backend/port/pg_sema.c
config.status: linking src/backend/port/sysv_shmem.c to
src/backend/port/pg_shmem.c
config.status: linking src/backend/port/dynloader/linux.h to
src/include/dynloader.h
config.status: linking src/include/port/linux.h to
src/include/pg_config_os.h
編譯和安裝,繼續(xù)執(zhí)行命令:
gmake world
gmake install-world
4. 配置環(huán)境變量
root用戶下
vi /etc/profile
新增行輸入
export PGHOME=/你自己的安裝目錄/postgresql
export PGDATA=/你自己的安裝目錄/postgresql/data
export PATH=$PATH:JAVA_HOME/bin:$PGHOME/bin
記得保存退出 -wq
5.初始化數(shù)據(jù)庫
不要在 root 用戶下初始數(shù)據(jù)庫,否則會報錯
initdb: cannot be run as root
Please log in (using, e.g., “su”) as the (unprivileged) user that will
own the server process.
還是在用戶postgres下,記得切換
進入安裝后的 postgresql 目錄,執(zhí)行初始化數(shù)據(jù)庫命令:
該命令下的目錄是我的自解壓目錄,還是請以自己的目錄為準。
其中第一個目錄是PostgreSQL 的 initdb 命令的完整路徑。initdb 命令用于創(chuàng)建新的 PostgreSQL 數(shù)據(jù)庫集群。
-D “/home/sdjk/soft/postgresql-12.4/data”: 這個參數(shù)指定了新數(shù)據(jù)庫集群的存儲位置。
-U postgres: 這個參數(shù)指定了創(chuàng)建新數(shù)據(jù)庫集群時使用的用戶名。在初始化過程中,postgres用戶將被用來創(chuàng)建必要的文件和目錄。
-W: 這個參數(shù)告訴 initdb 在創(chuàng)建新數(shù)據(jù)庫集群時進行密碼提示
示例命令:
/home/sdjk/soft/postgresql-12.4/bin/initdb -D "/home/sdjk/soft/postgresql-12.4/data" -U postgres -W
需要輸入、再次輸入數(shù)據(jù)庫管理員賬號密碼:
初始化成功后,出現(xiàn)以下信息:
Success. You can now start the database server using:
/home/postgres/pg12.4/bin/pg_ctl -D /home/postgres/pgdata -l
logfile start
5.啟動
使用初始化完成后系統(tǒng)提供的啟動命令,如下:
/home/postgres/pg12.4/bin/pg_ctl -D /home/postgres/pgdata -l logfile start
啟動成功會出現(xiàn)如下日志:
server starting
6.驗證
驗證 postgresql 是否啟動成功:
ps -ef|grep postgres
登錄數(shù)據(jù)庫文章來源:http://www.zghlxwxcb.cn/news/detail-728278.html
psql -U postgres -d postgres
6.可能遇到的問題
1.xx文件夾 could not change directory to “/root”: 權(quán)限不夠
是不是用root而不是新用戶解壓的 要改一下使用chown設(shè)置文件夾的所有子文件夾和文件的所有權(quán)
在root下操作 chown -R postgres:root +目錄即可 如:文章來源地址http://www.zghlxwxcb.cn/news/detail-728278.html
chown -R postgres:root /home/postgresql-12.4
到了這里,關(guān)于Linux服務(wù)器上的Postgresql 安裝與配置的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!