1.安装
参考http://blog.youkuaiyun.com/kongxx/article/details/48502887
http://blog.youkuaiyun.com/frank_good/article/details/46827601
除了在linux上安装postgreSQL,我们还可以安装pgAdmin III ;哎维护数据库。
postgreSQL 体系结构
http://my.oschina.net/liuyuanyuangogo/blog/497367?p={{page}}
2.配置
修改 /var/lib/pgsql/data/postgresql.conf 文件
修改 /var/lib/pgsql/data/pg_hba.conf 文件
pg_hba.conf 客户端认证配置文件
http://blog.youkuaiyun.com/liangwenjiecp/article/details/17525585
对于pgAdmin III,我们可以通过插件中的PSQL CONSOLE来进行操作,但是注意句末要加分号。
http://www.php100.com/manual/PostgreSQL8/app-psql.html
3.Python PsyCopg2的使用
下载PsyCopg
http://vdisk.weibo.com/s/Cd8pPaw56Ozys
安装时,出现错误,是由于win7是 64的原因,在安装python(32位)时,如果选择只为当前用户,以上问题是不会出现的,如果选择所有用户,那会出现这个问题。
根据
http://www.cnblogs.com/thinksasa/archive/2013/08/26/3283695.html
问题解决。
安装后出现问题
import psycopg2
出现问题
from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。
http://www.stickpeople.com/projects/python/win-psycopg/
根据提示,应该是安装的psycopg2为非win32版本,发现确实如此,选择了一个上述网站对应版本的win32程序,问题解决,可以通过例程建立表,该表能通过pgAdmin III来确认,确实正确建立该表.
# -*- coding: utf-8 -*-
"""
Created on Wed Mar 09 11:08:16 2016
@author: wangxin2
"""
import psycopg2
# 数据库连接参数
conn = psycopg2.connect(database="X", user="X", password="X", host="X.X.X.X", port="5432")
cur = conn.cursor()
cur.execute("CREATE TABLE ztest(id serial PRIMARY KEY, num integer,data varchar);")
# insert one item
cur.execute("INSERT INTO ztest(num, data)VALUES(%s, %s)", (1, 'aaa'))
cur.execute("INSERT INTO ztest(num, data)VALUES(%s, %s)", (2, 'bbb'))
cur.execute("INSERT INTO ztest(num, data)VALUES(%s, %s)", (3, 'ccc'))
cur.execute("SELECT * FROM ztest;")
rows = cur.fetchall() # all rows in table
print(rows)
for i in rows:
print(i)
conn.commit()
cur.close()
conn.close()
p.s. 5432是postgreSQL的默认端口。
转载一些数据库的使用命令
创建数据库
CREATE DATABASE test WITH OWNER = postgres ENCODING = 'UTF8';
进入控制台方法,在postgreSQL的安装目的bin下执行命令: psql 数据库名,
例: /usr/local/pgsql/bin/psql mydb
指定host、用户名和数据库的话,如:
/usr/local/pgsql/bin/psql -h localhost -U postgres -d test
查看版本: psql --version 或 SELECT version();
查看所有数据库:\l
查看所有数据库(包括详细参数):select * from pg_database;
选择数据库:\c databasename
查看所有表:\dt
查看某个表的结构:\d tablename
退出psql控制台:\q
查看表的索引:
select * from pg_indexes where tablename='log';
导出备份数据库:
pg_dump -h localhost -U postgres databasename > /tmp/databasename.bak.yyyymmdd.sql
导入恢复数据库(sql文件是pg_dump导出的文件就行,可以是整个数据库,也可以只是单个表,也可以只是结构等):
psql -h localhost -U postgres -d databasename < /tmp/databasename.bak.yyyymmdd.sql
导出数据结构,主要是加上参数-s:
pg_dump -U username -W dbname -f /tmp/filename.sql
导出某个表:
pg_dump -h localhost -U postgres -t tablename dbname > test.sql
导出某个表的结构,同样是加参数"-s":
pg_dump -h localhost -U postgres -t tablename -s dbname > test_construct.sql
导出某个表的数据,加参数"-a":
pg_dump -h localhost -U postgres -t tablename -a dbname > test_data.sql
查看序列:select * from information_schema.sequences where sequence_schema = 'public';
查看数据库大小:select pg_size_pretty(pg_database_size('test'));
查看表的大小:select pg_size_pretty(pg_relation_size('test'));
postgresql中文文档
http://www.php100.com/manual/PostgreSQL8/datatype.html