| PostgreSQL | ||
|---|---|---|
| 上一页 | 第十二章. 管理数据库 | 下一页 |
我们可以创建一个不在缺省位置的数据库(数据库的缺省位置是安装路径).因为任何数据库的访问实际上都是通过数据库后端进行的,所以数据库的任何具体的路径必须是后端可以访问的.
可选的数据库位置是通过环境变量来创建和引用的,这个环境变量给出指定存储位置的绝对路径。这个声明数据库位置的环境变量必须在后端运行前声明,并且它指向的位置必须为postgres管理员帐户可写。有关预配置数据库位置的问题,请与你的节点数据库管理员商议。任何有效的环境变量名都可以用于引用一个可选路径,尽管我们建议使用带有“PGDATA”前缀的使用环境变量名以避免和其他变量冲突。
注意:在以前版本的 Postgres,还允许用一个绝对路径来声明一个可选的存储位置。尽管我们推荐使用环境变量的方法(因为这样可以令节点管理员在管理磁盘空间时更灵活)我们还是允许使用绝对路径的方法来声明一个可选的位置。管理员手册描述了如何打开这个特性。
从安全性和完整性角度出发,采用的任何路径或环境变量都有一些附加路径域附在后面.必须运行 initlocation 为更改数据库位置做准备.
要使用环境变量 PGDATA2 创建数据存储区(本例中设置为 /alt/postgres),确保 /alt/postgres 已经存在并且可以被 Postgres 管理员帐户写。然后在命令行上键入:
% initlocation $PGDATA2
Creating Postgres database system directory /alt/postgres/data
Creating Postgres database system directory /alt/postgres/data/base
用下面的命令在命令行上在 PGDATA2 位置上创建存储区:
% createdb -D PGDATA2 mydb
在 psql 里实现这些的方法是键入:
* CREATE DATABASE mydb WITH LOCATION = 'PGDATA2';
如果你没有创建数据库的权限,你将看到如下信息:
% createdb mydb
WARN:user "your username" is not allowed to create/destroy databases
createdb: database creation failed on mydb.
如果声明的路径不存在或数据库后端没有读写该路径的权限,你将会看到如下信息:
% createdb -D /alt/postgres/data mydb
ERROR: Unable to create database directory /alt/postgres/data/base/mydb
createdb: database creation failed on mydb.
| 上一页 | 首页 | 下一页 |
| 管理数据库 | 开头 | 访问数据库 |