PostgreSQL是一個功能強大的開源對象關係資料庫管理系統(ORDBMS),在開源資料庫使用上與MySQL各領風騷。但也有不少人質疑postgresql的未來,正所謂,贊揚或批判一種資料庫都必須先瞭解它,然後才可有話語權。為了更多的瞭解postgresql,我們就先部署一套實例作為瞭解它的基礎。 ...
PostgreSQL是一個功能強大的開源對象關係資料庫管理系統(ORDBMS),在開源資料庫使用上與MySQL各領風騷。但也有不少人質疑postgresql的未來,正所謂,贊揚或批判一種資料庫都必須先瞭解它,然後才可有話語權。為了更多的瞭解postgresql,我們就先部署一套實例作為瞭解它的基礎。
一 、 環境介紹
操作系統: centos
CPU: 4核
記憶體: 16G
postgresql: postgresql-11.4
二、 編譯安裝
1. 安裝依賴包
yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel openldap-devel python-devel gcc-c++ openssl-devel cmake
2. 下載並解壓
wget https://ftp.postgresql.org/pub/source/v11.4/postgresql-11.4.tar.gz tar -zxvf postgresql-11.4.tar.gz
3. 創建用戶
# 查看用戶是否存在
id postgres
# 添加用戶組及用戶 groupadd postgres useradd -g postgres postgres # 再次查看可以查看對應的uid gid
id postgres
4. 創建 postgresql數據目錄並授權
選擇對應的磁碟空間較大的盤創建數據目錄
mkdir -p /data/postgresql/data chown -R postgres:postgres data
5. 編譯postgresql源碼
cd /data/postgresql-11.4 ./configure --prefix=/data/postgresql
PostgreSQL配置腳本選項
6. 開始安裝
make make install
編譯後結果如下
至此,postgresql安裝完成。
7. 配置環境變數
# 切換到postgres用戶 su - postgres # 編輯postgres用戶環境變數 vim .bash_profile # 添加如下內容 export PGHOME=/data/postgresql export PGDATA=/data/postgresql/data PATH=$PATH:$HOME/bin:$PGHOME/bin
# 使環境變數生效
source .bash_profile
8. 初始化資料庫
在postgres用戶下運行initdb命令即可初始化資料庫
initdb
此時,postgresql數據目錄下已經生成對應的文件。
cd /data/postgresql/data
ll -h
9. 配置文件修改
修改數據目錄下的postgresql.conf 及 pg_hba.conf文件
postgresql.conf 配置PostgreSQL資料庫伺服器的相應的參數。
pg_hba.conf 配置對資料庫的訪問許可權
初期測試使用時,可以簡單修改部分配置,其他值使用預設值。
1)修改 postgresql.conf
vim postgresql.conf 修改 listen_addresses 為 * ,代表所有主機皆可訪問 listen_addresses = '*'
記憶體配置等參數後續將介紹其含義及配置建議。
2)修改 pg_hba.conf
添加如下記錄
10. 配置服務
如需配置為服務啟動方式,可以按照如下步驟操作
# 進入postgresql源碼目錄
cd /data/postgresql-11.4/contrib/start-scripts
# 此目錄下有各系統的啟動目錄,需先將其添加執行許可權
chmod +x linux
# 將啟動服務拷貝至啟動服務下
cp linux /etc/init.d/postgresql
因啟動服務命令里配置上了預設安裝路徑目錄及數據目錄,如與預設路徑不一致,需手動調整
vim /etc/init.d/postgresql
修改 prefix及PGDATA
11 . 啟動服務
a) 通過服務啟動postgresql
/etc/init.d/postgresql start
b) 通過服務關閉postgresql
/etc/init.d/postgresql stop
c) 通過pg_ctl 啟動
# 將postgresql安裝路徑bin目錄下的命令賦權給postgres用戶 cd /data/postgresql/bin chown -R postgres:postgres . # 切換至postgres用戶啟動服務 su - postgres # 啟動服務 pg_ctl -D /data/postgresql/data/ -l logfile start
至此,便可以通過客戶端連接資料庫進行操作了。
三、簡單操作
1. 創建資料庫
createdb gjc
2. 連接資料庫
# 使用psql連接gjc資料庫
psql gjc
3. 創建表、索引、並插入數據
gjc=# create table test1(id int not null primary key,name varchar(20),age int ); CREATE TABLE gjc=# create index idx_test1_name on test1(name); CREATE INDEX gjc=# insert into test1 values(1,'gjc',28); INSERT 0 1 gjc=# select * from test1
id | name | age
----+------+-----
1 | gjc | 28
(1 row)
其他的操作,大家可以參考官方文檔或中文社區進行學習實踐,如有問題也可以與我聯繫溝通,共同探索。
耿小廚已開通個人微信公眾號,想進一步溝通或想瞭解其他文章的同學可以關註我
我的博客即將同步至騰訊雲+社區,邀請大家一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=33ja5r1x478ks