PostgreSQL

来自Ubuntu中文
跳到导航跳到搜索


PostgreSQL是一个强大的关系型数据库管理系统,它按照BSD许可[1]发行。PostgreSQL包含很多高级的特性,拥有良好的性能和很好的适用性。

PostgreSQL绑定了很多种编程语言,例如 C, C++, Python, Java, PHP, Ruby等 ,它可以操作很多东西,从简单的Web应用程序到拥有数百万条记录的庞大数据库。


sudo apt-get install postgresql

pgAdmin III 是一个方便的PostgreSQL图形客户端,它很适合初学者,可以在终端下输入如下命令来安装:

sudo apt-get install pgadmin3

你还可以通过系统->系统管理->新立德包管理器来安装这些包。

服务器基本设置

启动

sudo /etc/init.d/postgresql-8.4 start(10.04下安装的postgresql默认是8.4,若是10.10,则不用加版本号)
sudo /etc/init.d/postgresql-8.4 stop

设置密码

安装完毕,我们需要更改postgres用户的密码,否则我们就没法使用这个数据库服务器。以postgres这个系统用户的身份运行psql命令,在终端中输入如下:

sudo su postgres -c psql template1

这时候会出现新的提示符,输入下面两个命令,用新密码替换 <***password***>:

ALTER USER postgres WITH PASSWORD ' <***password***> ';

设置 postgres 用户的密码

sudo passwd postgres

而后输入自己的密码

创建数据库

创建第一个数据库,我们把它命名为"mydb",先输入:

su  postgres

转入 postgres 用户.

用这样的方试会报错

sudo su postgres -c createdb mydb

转为 postgres 用户登陆后,执行

createdb mydb

使用pgAdmin III图形界面客户端

要了解PostgreSQL能干些什么,你首先要学会使用一个图形界面的客户端,在终端中输入:

pgadmin3

你现在停留在pgAdmin III的主界面,点击 "添加数据库连接" 按钮(在左上方)。弹出一个新的对话框,输入地址127.0.0.1,服务器描述,默认数据库"mydb" 和你的密码。

通过这个图形界面,你可以新建数据库,表和其他对象;查询数据库,添加数据,执行SQL语句等。 用pgAdmin 3连接

效果图

管理数据库服务器

管理用户和权限

PostgreSQL没有一个简单的管理用户的方法 ,首先你必需编辑/etc/postgres/pg_hba.conf 并修改它的默认配置(默认配置的安全性非常高),你希望 postgres 来管理它的用户(和系统用户无关),你需要添加如下几行:

8<-------------------------------------------
# TYPE  DATABASE    USER        IP-ADDRESS        IP-MASK           METHOD
# rezo local
host    all         all         10.0.0.0       255.255.255.0    password
8<-------------------------------------------

它的意思是通过你的本地网络(10.0.0.0/24要替换为你的本地网络 !), postgres用户可以以传统的”用户名+密码“的方式连接到数据库。

创建一个数据库,并创建一个对该数据库拥有所有权限的用户,可以使用如下命令:

sudo su postgres -c createuser -D -A -P myuser
sudo su postgres -c createdb -O myuser mydb

第一个命令是创建一个新用户,这个用户没有创建数据库的权限(-D),没有新建用户的权限(-A)。创建用户时会提示你输入密码。第二个命令是创建一个数据库'mydb ,以 'myuser' 作为它的所有者。

这个小例子可以满足你大部分的需要。要想了解更多的信息,你可以查看帮助文档或者在线文档。

进一步深入

如果你对SQL语言不熟悉,你可能希望深入研究这门强大的语言,尽管一些简单的PostgreSQL应用可能用不到这些知识 (例如一个简单的Django 项目)。

PostgreSQL PostgreSQL官方网站 包含了大量关于如何使用这个数据库的信息。


[1] 你在一些程序(例如商业的封闭代码的软件)中使用PostgreSQL时不用支付任何费用, 不同于其他的著名开源数据库