PostgreSql服务器的配置(三)
p|restart
进行人工控制;
和Mysql不同的是,Postgresql的用户管理和权限控制,是截然不同的一套体制,有点类似于传统的关系数据库;
在"pg_hba.conf"文件的PG_DATA段可以用ip地址和用户名限制对能数据库的连接,这里你可以指定什么样的IP地址能够连接数据库,什么样的IP地址是不允许使用数据库资源的;
在数据库用户以及数据库方面postgresql用系统命令进行管理:
createuser 允许声明可访问 Postgres的用户.destroyuser删除用户以及拒绝他们访问Postgres。
这些命令只影响用户与 Postgres;而对用户的其他操作系统级的权限或状态没有影响
用“createuser”命令在数据库中定义一个新超级用户:
# su postgres $ createuser Enter name of user to add ---> admin Enter users postgres ID or RETURN to use unix user ID: 500 -> Is user "admin" allowed to create databases (y/n) y Is user "admin" a superuser (y/n) y createuser: admin was successfully added 用“destroyuser”命令在数据库中删除用户: # su postgres $ destroyuser Enter name of user to delete ---> admin destroyuser: delete of user admin was successful. 用“createdb”命令创建新的数据库: # su postgres $ createdb dbname 用“destorydb”命令删除数据库: # su postgres $ destorydb dbname
6 使用psql操作postgresql数据库
postgresql和
mysql一样拥有一套独立的客户端程序,使用标准的SQL语句对数据库进行操作和管理;
$psql databasename Welcome to the POSTGRESQL interactive sql monitor: Please read the file COPYRIGHT for copyright terms of POSTGRESQL [PostgreSQL 6.5.3 on i686-pc-linux-gnu, compiled by egcs ] type for help on slash commands type q to quit type g or terminate with semicolon to execute query You are currently connected to the database: databasename
告诉用户已经连接到数据库databasename
7.postgresql数据库的备份
Postgres 提供两个工具备份你的
系统:pg_dump 备份独立的数据库以及 pg_dumpall 在一个步骤里备份你的数据库节点。
可以用下面的命令备份一个独立的数据库:
$ pg_dump dbname > dbname.pgdump
然后可以用下面命令恢复
$cat dbname.pgdump | psql dbname
这个技巧可以用于把数据库移动到一个新位置,然后重新命名现有数据库。
Postgres 允许表的尺寸大于你的系统的最大文件尺寸,可能把表输出到一个文件会有问题,生成的文件很可能比你的系统允许的最大文件大。
使用压缩的输出格式:
$ pg_dump dbname | gzip > filename.dump.gz 重载: $ createdb dbname $ gunzip -c filename.dump.gz | psql dbname 或 $ cat filename.dump.gz | gunzip | psql dbname 使用分割(split): $ pg_dump dbname | split -b 1m - filename.dump. 重载: $createdb dbname $ cat filename.dump.* | pgsql dbname
当然,文件名(filename)和 pg_dump 输出的内容不必与数据库名一样。同样,重载的数据库可以有任意新的名称,所以这个机制还适用于给数据库改名。
PostgreSQL已经是不利新闻的一个牺牲品,被列为一个学术的玩物,为真实世界使用太复杂。在过去这可能是对的,然而不再是。它有一个远远超过其他进展缓慢的数据库甚至一些企业数据库的功能集,然而, 它缺乏用来衡量达到高价产品的很多管理特征和调节能力,这些特征是数据库决不会一般水平的数据库所要求的,并且甚至他们不会注意到这很少的缺点。PostgreSQL在Unix数据库竞技场成为了一个真正的竞争者。