環境及資源
- Linux版本:CentOS release 6.5
- PostgresSQL版本:postgresql-10.1
- PostgreSQL官網下載地址:https://www.postgresql.org/ftp/source/v10.1/
- 參考文檔:推薦看英文文檔
1)英文文檔:https://www.postgresql.org/docs/10/static/install-short.html
2)中文文檔:http://www.postgres.cn/docs/9.3/install-short.html
- DBeaver下載地址:https://dbeaver.jkiss.org/download/
我下載的是社區版Windows 64 bit (zip archive) (dbeaver-ce-4.3.0-win32.win32.x86_64.zip)
- DBeaver jdbc驅動下載地址:https://jdbc.postgresql.org/download.html#current
我下載的是PostgreSQL JDBC 4.2 Driver, 42.1.4
正文
安裝路徑為/usr/local/pgsql/
1、 解壓
gunzip postgresql-10.1.tar.gz
tar xf postgresql-10.1.tar
2、 依次執行命令
* 需要的話,make可以改為gmake
./configure make su make install adduser postgres mkdir /usr/local/pgsql/data chown postgres /usr/local/pgsql/data su - postgres /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 & /usr/local/pgsql/bin/createdb test /usr/local/pgsql/bin/psql test
./configure是檢查當前環境能否安裝PG,以下是我遇到的報錯和解決方案
報錯1:configure: error: no acceptable C compiler found in $PATH:
解決:yum install gcc
報錯2:configure: error: readline library not found
解決:yum install readline-devel
報錯3: error: zlib library not found解決方法
解決方法
yum install zlib-devel;
3、 啟動或重啟server
* 先確保是切換到了/pgsql/bin目錄下,並且切換Linux用戶postgres
cd /usr/local/pgsql/bin/ su – postgres
即
啟動server:
./pg_ctl start -D /usr/local/pgsql/data
如果啟動成功,顯示信息如下
至此,PostgreSQL安裝成功。
重啟server:
./pg_ctl restart -D /usr/local/pgsql/data
如果重啟成功,顯示信息如下
4、 新建數據庫和可以登錄數據庫的用戶密碼
* 確保是在/usr/local/pgsql/bin/目錄下
創建數據庫:
./createdb mydb
創建用戶(如用戶名為lin,密碼為LinBug)有兩種方式,
1) CREATE USER或CREATE ROLE:CREATE USER是CREATE ROLE的一個別名。 唯一的區別是CREATE USER命令缺省是LOGIN, 而CREATE ROLE命令缺省是NOLOGIN。
先進入默認的postgres數據庫:
./psql
然后執行:
CREATE USER lin WITH PASSWORD 'LinBug';
創建成功提示如下
2) pg封裝的命令方式:
./createuser -P lin
這會提示你輸入新建用戶的密碼,重復輸入密碼后,創建成功
5、訪問數據庫
* 確保在/usr/local/pgsql/bin/目錄下,
以默認用戶名訪問默認數據庫(默認的用戶名和數據庫名都是postgres):
./psql
於是進入PG的交互終端psql
以名為lin的角色登錄名為mydb的數據庫:
./psql mydb -U lin
可以看出,當psql終端的提示符為=#時,表示當前登錄的是超級用戶,而當提示符為=>時則為普通用戶
6、遠程訪問數據庫設置
* 遠程訪問數據庫的認證方式主要有很多方式,我只設置基於TCP/IP連接的trust認證方式
需設置兩個配置文件,
1)修改配置文件postgresql.conf,
vim /usr/local/pgsql/data/postgresql.conf
修改監聽地址:
#listen_addresses=’localhost’
#將上面這行改成如下
listen_addresses=’*’
2)修改配置文件/pgsql/data/pg_hba.conf:
vim /usr/local/pgsql/data/pg_hba.conf
添加一條IP授權記錄(如192.168.2.23),可以對一個網段授權
# 這是在/pgsql/data/pg_hba.conf文件里加 # IPv4 myhost connections: host all all 192.168.2.0/24 trust
即
當然,可以設置所有網段IP可以訪問:
# 這是在/pgsql/data/pg_hba.conf文件里加 # IPv4 remote address connections: host all all 0.0.0.0/0 trust
即
設置完需要重啟數據庫才能生效。
7、Windows圖形化工具DBeaver客戶端訪問PG
* 就像很多公司用PL/SQL Developer、Toad來管理Oracle一樣,可以用Dbeaver訪問PG
* Dbeaver需要指定jdbc驅動,可到https://jdbc.postgresql.org/download.html#current下載
由於前面設置的是基於TCP/IP的trust認證,所以這里也只要設置如下參數就可:
Host:搭建PG的主機ip地址,這里我把自己的主機IP碼掉啦
Port:默認為5432,如果沒有特意去配置里改動,這個端口一般都是5432
Database:就是我們前面建立的數據庫mydb
User:前面創建的用戶名lin
Password:用戶名對應的密碼LinBug
點擊“測試鏈接”,如下表示連接成功。然后再一路點擊“next”
至此,我們就可以愉快地在本地管理搭建在遠程Linux機器上的PostgreSQL數據庫啦!