postgresql 基础用法

来源:互联网 发布:23333什么意思网络用语 编辑:程序博客网 时间:2024/06/06 14:08

http://www.yolinux.com/TUTORIALS/LinuxTutorialPostgreSQL.html

以上是参考资料

首先安装pgsql的时候会在linux里面自动创建一个操作系统的用户:postgres。我们需要 su - postgres 切换到这个用户才能操作数据库。

数据库操作在两个地方进行,一个是postgres用户下的bash shell,一个是psql这个用户界面工具提供的shell,在这个psql的shell里面,我们是写sql语句的。

启动pgsql:如果直接写psql是进入postgres数据库下,里面可以通过 \d 查到我们一共有多少个数据库(一个电脑里面有多个数据库,一个数据库里面有多张表)。如果写 psql db_name 则是进入db_name 这个数据库下操作,\d就可以查询这个数据库下有多少张表。

然后,我们需要通过创建数据库的用户管理数据库。这个数据库的用户名和密码要写在django的settings.py里面的。

备份数据库:

pg_dump 备份, pg_restore 还原。

pg_dump -h localhost -p 6543 -U postgres -Fc  -f ~/backup/db/stuDB2014-2-12.backup db_name

pg_restore -c -Fc -d db_name ~/backup/db/stuDB2014-2-12.backup

其中-h知名域名(因为其实这两个备份还原程序可以远程干活) -p 指明端口 -Fc 指明输出备份文件的format,其实这里就是压缩啦 -f 指明输出路径 最后是要处理的数据库

pg_restore 里面的-c (一定要小写)是说在恢复之前把已经存在的数据库删掉。

这里注意,如果pg_dump 不加 -Fc 输出是纯 sql命令文件,也就是说它会输出这个数据库从空白到现在运行的所有sql操作,以纯文本输出。这个时候不能用pg_restore 还原,而是 psql db_name < backup_file ,注意这里不会覆盖原来的文件,而只是简单地把这些sql操作全部跑一遍。

这个时候我们需要一个空白的数据库来还原,创建空白的数据库(bash shell):createdb -T template0 db_name .这里template0是pgsql自己给的一个空白数据库模板,我们通过这个模板来创建数据库就能保证它是空白的。


ubuntu 下django + pgsql

首先 sudo apt-get install libpg-dev

centos下libpg-dev改成 postgresql-libs

有一次我在服务器上重装psycopg2说一个xxx_config not found, 然后装了postgresql-devel又可以了

然后pip install psycopg2

在学子服务器里面,createdb这些命令都用不了,只能用SQL。首先psql -h localhost -U postgres StuCampus这里的StuCampus是原来php时代的数据库名字,我们进去以后操作新的数据库


服务器上面:

./bin/pg_dump -h localhost -U postgres -Fc field_application_db -f /backup/db/test.bak

./bin/pg_restore -c -h localhost -Fc -d field_application_db /backup/db/test.bak


0 0
原创粉丝点击