安裝postgresql
正常情況下可以通過命令直接安裝postgresql
sudo apt-get install postgresql-9.*
unbutu 14.04版本默認的是postgresql-9.3,如果自己本地數據庫中存在postgresql事物等新關鍵字需要在ubuntu14.04上安裝其他版本可以通過以下方法:
- 添加postgresql repository
sudo add-apt-repository "deb https://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main"
- 更新并安裝postgresql-9.6
sudo apt-get update
sudo apt-get install postgresql-9.6
注意:
如果本地已經安裝了postgresql其他版本,如果再安裝postgresql-9.6,其默認端口會修改(非5432),這個特別需要注意,否則其他配置完成可能因為端口問題導致連接不上
添加新用戶和數據庫
- 創建系統新用戶
sudo adduser dbuser
- 切換到postgre用戶
sudo su - postgres
- 使用psql命令登錄PostgreSQL控制臺
psql
- 修改、設置postgres密碼
\password postgres
按照提示輸入密碼,此密碼是連接必須的,需要記住
- 創建數據庫用戶dbuser(剛才創建的是Linux系統用戶),并設置密碼
create user dbuser with password 'password';
- 創建數據庫并指定所有者
create database testdb owner dbuser;
- 給testdb數據庫的所有權限都賦予dbuser,否則dbuser只能登錄控制臺,沒有任何數據庫操作權限。
grant all privileges on database testdb to dbuser;
- 數據庫刪除
drop database testdb
- 控制臺命令
- \h:查看SQL命令的解釋,比如\h select。
- ?:查看psql命令列表。
- \l:列出所有數據庫。
- \c [database_name]:連接其他數據庫。
- \d:列出當前數據庫的所有表格。
- \d [table_name]:列出某一張表格的結構。
- \du:列出所有用戶。
- \e:打開文本編輯器。
- \conninfo:列出當前數據庫和連接的信息。
- 退出
使用\q命令退出控制臺(也可以直接按ctrl+D)
數據庫操作
# 創建新表
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;
數據庫遠程訪問設置
- 修改postgresql.conf
postgresql.conf存放位置在/etc/postgresql/9.x/main下,這里的x取決于你安裝PostgreSQL的版本號,編輯或添加下面一行,使PostgreSQL可以接受來自任意IP的連接請求。
listen_addresses = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
另外如果需要可以設置默認訪問端口
port = 5432 # (change requires restart)
- 修改pg_hba.conf
pg_hba.conf,位置與postgresql.conf相同,雖然上面配置允許任意地址連接PostgreSQL,但是這在pg中還不夠,我們還需在pg_hba.conf中配置服務端允許的認證方式。任意編輯器打開該文件,編輯或添加下面一行。
# TYPE DATABASE USER CIDR-ADDRESS METHOD
host all all 0.0.0.0/0 md5
默認pg只允許本機通過密碼認證登錄,修改為上面內容后即可以對任意IP訪問進行密碼驗證。對照上面的注釋可以很容易搞明白每列的含義,具體的支持項可以查閱文末參考引用。
- 重啟service
完成上兩項配置后執行sudo service postgresql restart重啟PostgreSQL服務后,允許外網訪問的配置就算生效了。