jquery

2018年12月7日 星期五

Linux Ubuntu 上安裝Python 3 及 postgresql

[安裝]
在ubuntu上裝了最新的3.7版的python
命令列上隨意的打上
sudo apt-get install python3

一下子就裝好了
接著要裝pip ,pip可以用來下載python的套件(函式庫),
但請注意,這個pip要下載3.0版用的,在ubuntu上他叫python3-pip, 所以
sudo apt-get install python3-pip

裝好了後,少了database,剛好我python是新學的,於是想說一直以來除了mysql之外也沒有用過別家的
於是呼想起之前一直想學的Postgresql,好吧,那就裝吧

sudo apt-get install postgresql

於是,postgresql也就這樣裝好了

----------------------------------------------------------------------------------------------------------------
 設定

1.首先,postgresql在安裝時會預設幫你創一個叫「postgres」的使用者
這個使用者被設定為postgresql最大的管理員(相當於root),但創建時的密碼是亂數,所以你必須先幫個這個postgres改系統密碼

 sudo passwd postgre

2.改好之後切換到postgres這個使用者
    su postgres

接著就可直接打上psql 這個指令,順利進入後你會看令命列postgres=#

3.由於安全因素,一般不建議大家使用postgres這個帳號進行日常維護
尤其這個帳號你知我知,寶傑西屏都知道,所以我們在此創立一個新的,他叫tom
密碼 1111,這個tom 必須是linux的user之一,因為postgresql所採用的peer認證的方式,所以除了db內建之外,linux也必須要建一個相同的user帳號,並 請一定要記得打完後要加一個分號

 postgres=# create user tom with password '1111';     <--- br="">
 
4. 接著建立一個database 叫myshop
    postgres=# create database myshop;

5. 把這個database 的權限指定給tom
postgres=#GRANT ALL PRIVILEGES ON DATABASE myshop TO tom;

然後,我以為這樣就結束了
但,我用TOM的帳號進去後發現無法創建資料表及INSERT資料
上網一查發現,TABLE也必須GRANT,所以

6.指定TABLE權限給TOM
 postgres=# GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA PUBLIC TO tom;
 
7. 建立一張table
create table lotto (serial int, o1 int,o2 int)

至此,postgresql的設定皆完成

接下來換PYTHON

1.首先裝上psycopg2
 sudo apt-get  install python3-psycopg2

2接著寫一個簡單的python 測試連線

import psycopg2
conn= psycopg2.connect("dbname=myshop user=tom password=1111 host=127.0.0.1")
cur=conn.cursor()
cur.execute("insert into lotto (14,15,16)")
conn.commit()
conn.close()

設定完了~~~!

---------------------------------------------------------------------------------------------------------------------
[備註]
如果其單純想創建資料庫使用者而不想多一個linux使用者的話,可以修改
 /etc/postgresql/10/main/pg_hba.conf


local   all             all                                     peer
改成

沒有留言: