依賴工具庫
注意:
默認用戶名是postgres
以下命令是Ubuntu操作系統中的命令
make
GCC
Zlib
- 安裝命令:sudo apt-get install zlib1g-dev
- 注意有些軟件包的名字無法確定,可以借助ubuntu software center來確定其有效名字,
readline
- 安裝命令:sudo apt-get install libreadline6 libreadline6-dev
- 注意網上有的寫安裝readline-dev,這並不適用於Ubuntu系統,一定要找一下自己的操作系統安裝readline的命令,不同的操作系統,命令是不一樣的,要小心
安裝
1.下載postgresql
下載地址:https://www.postgresql.org/ftp/source/v11.0/
2.解壓文件:
在zmy目錄下執行:tar -zxvf postgresql-11.0.tar
3.進入解壓目錄並配置參數
進入解壓目錄:cd postgresql-11.0
創建安裝目錄:sudo mkdir /opt/postgresql-11.0
配置安裝參數:./configure --prefix=/opt/postgresql-11.0
注:
--prefix 指定安裝目錄
如果缺少readline,zlib,會報錯,安裝方法見依賴工具庫
4.編譯並安裝
make & make install
注:linux編譯安裝中configure、make和make install各自的作用 https://www.jianshu.com/p/c70afbbf5172
5.創建用戶組和用戶,並設置密碼(root不能執行pgsql的一些命令,所以一定要創建postgresql這個用戶)
sudo useradd -d /home/postgres -m postgres #創建用戶並為用戶創建主目錄,-m:自動建立用戶的登入目錄。
passwd postgres #為用戶postgre設置密碼
注:創建用戶時沒有密碼,登錄時又提示輸入密碼,那就 sudo passwd 用戶名,然后回車輸入兩遍密碼就可以為新用戶添加密碼了
6.創建數據庫庫文件存儲目錄並給postgresql用戶賦予權限:
進入數據庫安裝目錄: cd /opt/postgresql-11.0
創建data目錄: sudo mkdir data
給postgresql用戶賦予權限:sudo chown postgres.postgres data
7.切換用戶:
su postgres
8.添加環境變量:
export POSTGRESQL_HOME=/opt/postgresql-11.0 export PGDATA=/opt/postgresql-11.0/data export PATH=$PATH:$POSTGRESQL_HOME/bin:$PGDATA
#查看環境變量
echo $POSTGRESQL_HOME
echo $PGDATA
echo $PATH
9初始化數據庫目錄:
初始化數據: initdb
10.配置監聽地址和端口:
vi data/postgresql.conf
修改為如下配置:
listen_addresses = '*'
port = 5432
也就是將注釋號"#"去掉,並把"localhost"改為"*"
PostgreSQL.conf文件配置詳解[轉]https://www.cnblogs.com/kuang17/p/6902712.html 特別詳細,備查
12.啟動數據庫
pg_ctl -l log/server.log start
#關閉數據庫 pg_ctl stop
#重啟數據庫 pg_ctl restart
注:
-D data可以省略,系統會讀取 PGDATA環境變量
啟動數據庫時遇到的錯誤

原因:修改pg_hba.conf出錯
13.創建並連接數據庫
createdb -h localhost stu
psql -h localhost stu
注:
- stu為數據庫名,可以自己指定
- 連接數據庫時,必須指定數據庫名
- 創建數據庫時遇到錯誤:“could not conoect to database template1: could not connect to server:connections on unix domain socket "/var/run/postgresql/.s.PGSQL.5432”
-

-
解決方法:加上-h localhost這個選項
- 可能是在pg_hba.conf中沒有設置好本機訪問
- 連接數據庫時遇到“psql: FATAL: role "postgresql" does not exist”錯誤
- 解決方案:使用 “psql -U postgres [數據庫名]” 登錄
- 連接數據庫時遇到“psql: FATAL: Peer authentication failed for user "postgres"錯誤
解決辦法如下:
1). 運行下面的命令編輯pg_hba.conf文件 sudo vim /etc/postgresql/9.1/main/pg_hba.conf
2). 將
# Database administrative login by Unix domain socket
local all postgres peer
改為
# Database administrative login by Unix domain socket
local all postgres trust
3). 保存后執行下面的命令重新加載配置文件: sudo /etc/init.d/postgresql reload
