木棉下的守望 / Html / 关于postgresql

分享

   

关于postgresql

2017-09-28  木棉下的...

转自:http://blog.chinaunix.net/uid-22920230-id-3493064.html 

postgres安装:


安装postgresql

参考http://espace.iteye.com/blog/1125580
解压并进入
tar zxf postgresql-9.3.4.tar.gz
# cd postgresql-9.3.4
# yum -y install -y readline-devel
# ./configure --prefix=/usr/local/pgsql  
# make
# make install
//和mysql一样建立组和用户
# groupadd postgres                
# useradd -g postgres postgres
# mkdir /usr/local/pgsql/data
# chown postgres:postgres /usr/local/pgsql/data
# su - postgres
$ /usr/local/pgsql/bin/initdb --encoding=UTF-8 --no-locale -D /usr/local/pgsql/data
$ exit
# cp /usr/local/src/postgresql-9.3.4/contrib/start-scripts/linux /etc/init.d/postgresql
# chmod 755 /etc/init.d/postgresql
# chkconfig --add postgresql
# chkconfig postgresql on
# /etc/init.d/postgresql start
//修改配置文件
# vim /usr/local/pgsql/data/postgresql.conf
listen_addresses = '*'     //是否允许其他计算机访问
port = 5432      //通过哪个端口访问
# /etc/init.d/postgresql restart

若报错:Restarting PostgreSQL: pg_ctl: could not open PID file "/usr/local/pgsql/data/postmaster.pid": 权限不够,则chown postgres -R /usr/local/postgres

仍然不能解决时,执行su –xxx 用户进入 /usr.local/pgsqld/bin下
./postgres -D /usr/local/pgsql/data
or ./pg_ctl -D /usr/local/pgsql/data -l logfile start
执行后提示“server starting”
//看看能否正常进入postgreSQL
# /usr/local/pgsql/bin/psql -U postgres -W
# \q

启动数据库需要非root用户
/usr/local/pgsql/bin
初始化数据库
./initdb  -D ../data start
启动数据库
./pg_clt -D ../data start
启动后连接数据库:
在/usrl/local/pgsql/bin目录下
执行 ./psql 连接到默认的postgres数据
然后可以创建数据库,创建表,等操作了。
Postgres需要创建postgres/ops(用户/密码)所属的数据库ocmdb  和  ops/ops 的ops数据库

 



 创建数据库

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'));

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多
    喜欢该文的人也喜欢 更多

    ×
    ×

    ¥.00

    微信或支付宝扫码支付:

    开通即同意《个图VIP服务协议》

    全部>>