一、安裝 PostgresSQL Centos 7 自帶的 PostgresSQL 是 9.2 版的。因為,yum 已經做了國內源,速度飛快,所以直接就用 yum 安裝了。依次執行以下命令即可,非常簡單。 如果需要安裝最新的版本,那就按官網上的說明來吧,但那個下載速度實在是…… https://ww ...
一、安裝 PostgresSQL
Centos 7 自帶的 PostgresSQL 是 9.2 版的。因為,yum 已經做了國內源,速度飛快,所以直接就用 yum 安裝了。依次執行以下命令即可,非常簡單。
1 sudo yum -y install postgresql-server postgresql 2 sudo service postgresql initdb 3 sudo chkconfig postgresql on 4 sudo systemctl enable postgresql 5 sudo systemctl start postgresql
如果需要安裝最新的版本,那就按官網上的說明來吧,但那個下載速度實在是……
https://www.postgresql.org/download/linux/redhat/
二、控制台 & 基本命令 & 資料庫操作
PostgresSQL 預設已經創建了名為 postgres 的超級用戶。
執行以下命令,登錄控制台
1 sudo -u postgres psql postgres
可以試試以下一些常用的控制台命令
(這一部分的內容,基本是照搬阮兄的博文,我把操作邏輯貫通了一些,另做了少量補充,方便實驗,原文在此)
# 查看 SQL 命令的解釋,比如 \h select \h # 查看 PostgresSQL 命令列表 \? # 列出所有資料庫 \l # 連接(使用)某個資料庫 \c [database_name] # 列出當前資料庫的所有表格 \d # 列出某一張表格的結構 \d [table_name] # 列出所有用戶 \du # 打開文本編輯器 \e # 列出當前資料庫和連接的信息 \conninfo # 退出控制台 \q
創建名為 testdb 的資料庫(註意:不要忘了命令末尾的分號!)
1 CREATE DATABASE testdb;
再用執行 \l,確認資料庫已經創建成功了
連接到(使用)testdb 資料庫
1 \c testdb
查看連接信息,確認已經連接到 testdb 上了
1 \conninfo
接下來就是資料庫的基本操作了,其實就是各種 SQL 語句,例如:
1 # 創建新表(執行後,用 \d 可以看到當前資料庫的表格列表中,出現了 user_tb) 2 CREATE TABLE user_tb(name VARCHAR(20), signup_date DATE); 3 4 # 插入數據 5 INSERT INTO user_tb(name, signup_date) VALUES('張三', '2017-08-03'); 6 7 # 選擇記錄 8 SELECT * FROM user_tb; 9 10 # 更新數據 11 UPDATE user_tb set name = '李四' WHERE name = '張三'; 12 13 # 刪除記錄 14 DELETE FROM user_tb WHERE name = '李四'; 15 16 # 添加欄位(使用 \d user_tb 查看 SQL 執行前後,表結構的變化) 17 ALTER TABLE user_tb ADD email VARCHAR(40); 18 19 # 更新結構 20 ALTER TABLE user_tb ALTER COLUMN signup_date SET NOT NULL; 21 22 # 更名欄位 23 ALTER TABLE user_tb RENAME COLUMN signup_date TO signup; 24 25 # 刪除欄位 26 ALTER TABLE user_tb DROP COLUMN email; 27 28 # 表格更名 29 ALTER TABLE user_tb RENAME TO user_dt_new; 30 31 # 刪除表格 32 DROP TABLE IF EXISTS user_dt_new;
三、創建用戶 & 啟用密碼登錄 & shell 命令
真正我們在產品中不會直接使用預設的 postgres 用戶,而是自己創建一個用戶。
有兩種操作方法:
- 進入 PostgresSQL 的控制台操作
- 使用 PostgresSQL 提供的 shell 命令
第二部分,使用的是控制台操作,這一部分,我們要試試 shell 命令
創建名為 dbuser 的用戶並設置密碼
1 sudo -u postgres createuser dbuser -P
創建名為 mydb 的資料庫,並設置其所有者為我們新創建的用戶 dbuser
1 sudo -u postgres createdb -O dbuser mydb
這時候,如果我們嘗試用新創建的用戶 dubser 登錄資料庫 mydb
1 psql -U dbuser -d mydb -h localhost
會遇到下麵的錯誤
1 psql: FATAL: Ident authentication failed for user "dbuser"
這是因為 PostgresSQL 預設沒有啟用密碼登錄,所以我們要先修改配置啟用之
打開配置文件
1 sudo vim /var/lib/pgsql/data/pg_hba.conf
找到下麵這兩行
1 host all all 127.0.0.1/32 ident 2 host all all ::1/128 ident
將 ident 改為 md5
1 host all all 127.0.0.1/32 md5 2 host all all ::1/128 md5
保存配置文件後,PostgresSQL
1 sudo systemctl restart postgresql
接下來,我們就可以用新創建的用戶 dbuser 愉快地登錄資料庫啦
1 psql -U dbuser -d mydb -h localhost
註意 -h localhost 不能省略,否則 PostgresSQL 還會走 ident 的驗證,會出現下麵的錯誤
1 psql: FATAL: Peer authentication failed for user "dbuser"
四、允許遠程訪問(連接)
PostgresSQL 預設是不允許遠程訪問的,如果我們想要在別的機器上訪問資料庫,還需要做一些設置。
打開 postgresql.conf 文件
1 sudo vim /var/lib/pgsql/data/postgresql.conf
加入下麵一行配置,表示允許來自任意 IP 的連接請求
1 listen_addresses = '*'
打開 pg_hba.conf 文件
1 sudo vim /var/lib/pgsql/data/pg_hba.conf
加入下麵一行配置,表示對任意 IP 訪問進行密碼驗證
1 host all all 0.0.0.0/0 md5
最後,重啟 PostgreSQL 使配置生效
1 sudo systemctl restart postgresql
現在就可以遠程訪問 PostgreSQL 資料庫啦
【原文鏈接】http://www.ipaomi.com/2017/08/03/centos-7-3-安裝配置-postgresql-9-x/