PostgreSQL在Linux下安裝與使用

  • 工做中須要用到postgresql,記錄一下在Linux環境如何安裝和使用

1.安裝yum源

地址從http://yum.postgresql.org/repopackages.php 獲取php

yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

2.安裝PostgreSQL

yum install postgresql96-server postgresql96-contrib

3.初始化數據庫

/usr/pgsql-9.6/bin/postgresql96-setup initdb

4.默認狀況下PostgreSQL不支持密碼登陸,如需支持須要修改配置文件

  • 將未註釋行中的ident 替換爲 md5
vim /var/lib/pgsql/9.6/data/pg_hba.conf
# TYPE DATABASE  USER   ADDRESS     METHOD
# "local" is for Unix domain socket connections only
local all    all          peer
# IPv4 local connections:
host all    all    127.0.0.1/32   ident
# IPv6 local connections:
host all    all    ::1/128     ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication  postgres        peer
#host replication  postgres  127.0.0.1/32   ident
#host replication  postgres  ::1/128     ident
  • 如需開啓遠程訪問,可編輯/var/lib/pgsql/9.6/data/postgresql.conf 文件。
  • #listen_addresses = 'localhost'修改成listen_addresses='*' (固然,此處‘*'也能夠改成任何你想開放的服務器IP)
  • 另外對於特定的IP還能夠設置開啓信任遠程鏈接,修改/var/lib/pgsql/9.6/data/pg_hba.conf,按下面的格式進行添加設置。
# IPv4 local connections:
 host all   all  127.0.0.1/32  trust
 host all   all  8.8.8.8/32(須要鏈接的服務器IP) trust
  • 修改完配置之後不要忘了重啓服務。

5.管理服務,和其餘服務同樣仍是用systemd進行管理

systemctl start postgresql-9.6 #啓動服務
systemctl restart postgresql-9.6 #重啓服務
systemctl stop postgresql-9.6 #中止服務
systemctl enable postgresql-9.6 #自動啓動

6.登陸PostgreSQL

  • PostgreSQL 安裝完成後,會創建一下‘postgres'用戶,用於執行PostgreSQL,數據庫中也會創建一個'postgres'用戶,若是咱們要使用PostgreSQL就必須先登陸此賬號。
sudo -i -u postgres
  • 執行後提示符會變爲 ‘-bash-4.2$',再運行
  • 同構執行進入 psql 進入postgresql命令行環境。
[root@localhost ~]# sudo -i -u postgres
-bash-4.2$ psql
psql (9.6.1)
Type "help" for help.
  
postgres=#
  • 接着能夠執行ALTER USER postgres WITH PASSWORD '123456'來設置postgres用戶密碼,可經過\q退出數據庫

經常使用命令介紹:

  • 控制檯命令sql

    • 除了前面已經用到的password命令(設置密碼)和q命令(退出)之外,控制檯還提供一系列其餘命令。
    \h:查看SQL命令的解釋,好比\h select。
    \?:查看psql命令列表。
    \l:列出全部數據庫。
    \c [database_name]:鏈接其餘數據庫。
    \d:列出當前數據庫的全部表格。
    \d [table_name]:列出某一張表格的結構。
    \du:列出全部用戶。
    \e:打開文本編輯器。
    \conninfo:列出當前數據庫和鏈接的信息。
  • 數據庫操做數據庫

    • 基本的數據庫操做,就是使用通常的SQL語言。
    # 建立新表 
    CREATE TABLE user_tbl(name VARCHAR(20), signup_date DATE);
    # 插入數據 
    INSERT INTO user_tbl(name, signup_date) VALUES('張三', '2013-12-22');
    # 選擇記錄 
    SELECT * FROM user_tbl;
    # 更新數據 
    UPDATE user_tbl set name = '李四' WHERE name = '張三';
    # 刪除記錄 
    DELETE FROM user_tbl WHERE name = '李四' ;
    # 添加欄位 
    ALTER TABLE user_tbl ADD email VARCHAR(40);
    # 更新結構 
    ALTER TABLE user_tbl ALTER COLUMN signup_date SET NOT NULL;
    # 改名欄位 
    ALTER TABLE user_tbl RENAME COLUMN signup_date TO signup;
    # 刪除欄位 
    ALTER TABLE user_tbl DROP COLUMN email;
    # 表格改名 
    ALTER TABLE user_tbl RENAME TO backup_tbl;
    # 刪除表格 
    DROP TABLE IF EXISTS backup_tbl;
相關文章
相關標籤/搜索