安裝postgresql
正常情況下可以通過命令直接安裝postgresql
sudo apt-get install postgresql-9.*
unbutu 14.04版本默認的是postgresql-9.3齐帚,如果自己本地數(shù)據(jù)庫中存在postgresql事物等新關(guān)鍵字需要在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
注意:
如果本地已經(jīng)安裝了postgresql其他版本换途,如果再安裝postgresql-9.6奖蔓,其默認端口會修改(非5432),這個特別需要注意历等,否則其他配置完成可能因為端口問題導(dǎo)致連接不上
添加新用戶和數(shù)據(jù)庫
- 創(chuàng)建系統(tǒng)新用戶
sudo adduser dbuser
- 切換到postgre用戶
sudo su - postgres
- 使用psql命令登錄PostgreSQL控制臺
psql
- 修改仲义、設(shè)置postgres密碼
\password postgres
按照提示輸入密碼,此密碼是連接必須的两疚,需要記住
- 創(chuàng)建數(shù)據(jù)庫用戶dbuser(剛才創(chuàng)建的是Linux系統(tǒng)用戶),并設(shè)置密碼
create user dbuser with password 'password';
- 創(chuàng)建數(shù)據(jù)庫并指定所有者
create database testdb owner dbuser;
- 給testdb數(shù)據(jù)庫的所有權(quán)限都賦予dbuser含滴,否則dbuser只能登錄控制臺诱渤,沒有任何數(shù)據(jù)庫操作權(quán)限。
grant all privileges on database testdb to dbuser;
- 數(shù)據(jù)庫刪除
drop database testdb
- 控制臺命令
- \h:查看SQL命令的解釋谈况,比如\h select勺美。
- ?:查看psql命令列表。
- \l:列出所有數(shù)據(jù)庫碑韵。
- \c [database_name]:連接其他數(shù)據(jù)庫赡茸。
- \d:列出當(dāng)前數(shù)據(jù)庫的所有表格。
- \d [table_name]:列出某一張表格的結(jié)構(gòu)祝闻。
- \du:列出所有用戶占卧。
- \e:打開文本編輯器。
- \conninfo:列出當(dāng)前數(shù)據(jù)庫和連接的信息联喘。
- 退出
使用\q命令退出控制臺(也可以直接按ctrl+D)
數(shù)據(jù)庫操作
# 創(chuàng)建新表
CREATE TABLE user_tbl(name VARCHAR(20), signup_date DATE);
# 插入數(shù)據(jù)
INSERT INTO user_tbl(name, signup_date) VALUES('張三', '2013-12-22');
# 選擇記錄
SELECT * FROM user_tbl;
# 更新數(shù)據(jù)
UPDATE user_tbl set name = '李四' WHERE name = '張三';
# 刪除記錄
DELETE FROM user_tbl WHERE name = '李四' ;
# 添加欄位
ALTER TABLE user_tbl ADD email VARCHAR(40);
# 更新結(jié)構(gòu)
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;
數(shù)據(jù)庫遠程訪問設(shè)置
- 修改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
另外如果需要可以設(shè)置默認訪問端口
port = 5432 # (change requires restart)
- 修改pg_hba.conf
pg_hba.conf,位置與postgresql.conf相同蓖谢,雖然上面配置允許任意地址連接PostgreSQL捂蕴,但是這在pg中還不夠,我們還需在pg_hba.conf中配置服務(wù)端允許的認證方式蜈抓。任意編輯器打開該文件启绰,編輯或添加下面一行昂儒。
# TYPE DATABASE USER CIDR-ADDRESS METHOD
host all all 0.0.0.0/0 md5
默認pg只允許本機通過密碼認證登錄沟使,修改為上面內(nèi)容后即可以對任意IP訪問進行密碼驗證。對照上面的注釋可以很容易搞明白每列的含義渊跋,具體的支持項可以查閱文末參考引用腊嗡。
- 重啟service
完成上兩項配置后執(zhí)行sudo service postgresql restart重啟PostgreSQL服務(wù)后着倾,允許外網(wǎng)訪問的配置就算生效了。