`
brucectl
  • 浏览: 175979 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多
1.1. 安装
自然,在你想开始使用 PostgreSQL 之前, 你必须安装它.PostgreSQL 很有可能 已经安装到你的节点上了,因为它包含在你的操作系统的发布里, 或者是系统管理员已经安装了它.如果是这样的话,那么你应该从 操作系统的文档或者你的系统管理员那里获取如何访问 PostgreSQL 的信息.

如果你不清楚 PostgreSQL 是否已经安装, 或者不知道你能否用它(已经安装的)做自己的实验,那么你就可以自己安装. 这么做并不难,并且是一次很好的练习. PostgreSQL 可以由任何非特权用户安装, 并不需要超级用户 (root) 的权限.

如果你准备自己安装 PostgreSQL, 那么请参考管理员手册获取安装的有关信息, 安装之后再回到这个指导手册来.一定要记住要尽可能遵循有关设置 合适的环境变量的章节里的信息.

如果你的节点管理员没有按照缺省的方式设置各项相关参数, 那你还有点额外的活儿要干.比如,如果数据库服务器机器是一个 远程的机器,那你就需要把 PGHOST 环境变量设置为 数据库服务器那台机器的名字.环境变量 PGPORT 也可能需要设置.最后一招: 如果当你试着启动一个应用而该应用报告说不能与 数据库建立联接时, 你应该马上与你的数据库管理员联系,如果你就是管理员, 那么你就要参考文档以确保你的环境变量得到正确的设置. 如果你不理解随后的几段,那么先阅读下一章. 1.2. 体系基本概念
在我们开始讲解之前,我们应该先了解 PostgreSQL 系统的基本体系. 理解 PostgreSQL 的部件之间的相互关系 将本节显得更清晰一些.

在数据库术语里,PostgreSQL 使用一种客户端/服务器的模式.一次 PostgreSQL 会话由下列相关的进程(程序)组成∶



一个服务器进程,它管理数据库文件,接受来自客户端应用与 数据库的联接,并且代表客户端在数据库上执行操作. 数据库服务器程序叫做 postmaster.

那些需要执行数据库操作的用户的客户端(前端)应用. 客户端应用可能本身就是多种多样的∶它们可以是一个字符界面的工具, 也可以是一个图形界面的应用,或者是一个通过访问数据库来显示网页的 web 服务器,或者是一个特殊的数据库管理工具. 一些客户端应用是和 PostgreSQL 发布一起提供的,但绝大部分是用户开发的.


和典型的客户端/服务器应用(C/S应用)一样,这些客户端和服务器 可以在不同的主机上.这时它们通过 TCP/IP 网络联接通讯. 你应该记住的是,在客户机上可以访问的文件未必能够在数据库服务器 机器上访问(或者只能用不同的文件名进行访问).

PostgreSQL 服务器可以处理来自 客户端的多个并发请求.因此,它为每个请求启动("fork" 一个新的进程.从这个时候开始,客户端和新服务器进程就不再经过 最初的 postmaster 进程的干涉进行通讯. 因此, postmaster 总是在运行,等待着联接, 二客户端和相关联的服务器进程则是起起停停.(当然,用户是肯定看不到 这些事情的.我们在这儿谈这些主要是为了完整.)
1.3. 创建一个数据库
看看你能否访问数据库服务器的第一个例子就是试着创建一个数据库. 一台运行着的 PostgreSQL 服务器可以 管理许多数据库.通常我们会为每个项目和每个用户单独使用一个数据库.

你的节点管理员可能已经为你创建了可以使用的数据库. 他应该已经高速你这个数据库的名字.如果这样你就可以省略这一步, 并且跳到下一节.

要创建一个新的数据库,在我们这个例子里叫 mydb,你可以使用下面的命令∶

$ createdb mydb
它应该生成下面这样的响应∶

CREATE DATABASE
如果这样,那么这一步就成功了,你就可以忽略本节余下的部分了.

如果你看到类似下面这样的信息

createdb: command not found
那么就是PostgreSQL没有安装好.要么是就根本没装上, 要么是你的搜索路径没有设置正确.尝试用绝对路径调用该命令试试∶

$ /usr/local/pgsql/bin/createdb mydb
在你的节点上这个路径可能不一样.和你的管理员联系或者 看看安装指导获取正确的位置.

另外一种响应可能是这样∶

psql: could not connect to server: Connection refused
        Is the server running locally and accepting
        connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
createdb: database creation failed
这意味着该服务器没有启动,或者没有在 createdb 预期的地方启动.同样, 你也要检查安装指导或者找管理员.

如果你没有创建数据库所需要的权限,那么你会看到下面的东西∶

ERROR:  CREATE DATABASE: permission denied
createdb: database creation failed
并非所有用户都经过了创建新数据库的授权. 如果 PostgreSQL 拒绝为你创建数据库, 那么你需要让节点管理员赋予你创建数据库的权限.出现这种情况时请 咨询你的节点管理员.如果你自己安装了 PostgreSQL, 那么你应该以你启动数据库服务器的用户身份登陆然后参考手册完成 权限的赋予工作. [1]

你还可以用其它名字创建数据库. PostgreSQL 允许你在一个节点上创建任意 数量的数据库.数据库名必须是以字母开头并且小于 31 个字符长. 一个方便的做法是创建和你当前用户名同名的数据库. 许多工具假设该数据库名为缺省数据库名,所以这样可以节省你的敲键. 要创建这样的数据库,只需要键入

$ createdb

如果你再也不想使用你的数据库了,那么你可以删除它. 比如,如果你是数据库 mydb 的所有人(创建人), 那么你就可以用下面的命令删除它∶

$ dropdb mydb
(对于这条命令而言,数据库名不是缺省的用户名.这样你就必须声明它.) 这个动作物理上将所有与该数据库相关的文件都删除并且不可取消, 因此做这件事之前一定要想清楚.

Notes
[1] 为什么这么干就行了? 解释∶PostgreSQL 用户名是和操作系统 用户账号分开的.如果你与一个数据库联接,你可以选择以何种 PostgreSQL 用户名进行联接; 如果你不选择,那么缺省就是你的当前操作系统账号. 如果这样,那么总有一个与操作系统用户同名的 PostgreSQL 用户账号用于启动服务器, 并且通常这个用户都有创建数据库的权限.如果你不想以该用户身份登陆, 那么你也可以在任何提防声明一个 -U 选项以 选择一个联接的 PostgreSQL 用户名.

1.4. 访问数据库
一旦你创建了数据库,你就可以访问它∶



运行 PostgreSQL 交互的终端程序, 叫 psql, 它允许你交互地输入,编辑,和执行 SQL 命令.

使用我们现有的图形前端工具,比如 PgAccess 或者 ApplixWare (通过 ODBC) 创建和管理数据库. 这种方法在这份教程中没有介绍.

写一个客户应用,使用多种语言绑定中的一种. 这些可能性在PostgreSQL 程序员手册中有更深入的 讨论.

你可能需要启动 psql,试验本教程中的例子. 你可以用下面的命令为 mydb 数据库激活它∶

$ psql mydb
如果你省略了数据库名字,那么它缺省就是你的用户账号名字. 你已经在前面的小节里知道这个大纲了.

在 psql 里,你会看到下面的欢迎信息∶

Welcome to psql, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help on internal slash commands
       \g or terminate with semicolon to execute query
       \q to quit

mydb=>;
最后一行也可能是

mydb=#
这个提示符意味着你是数据库超级用户,最可能出现在你自己安装了 PostgreSQL 的情况下.作为超级用户 意味着你不受访问控制的限制.对于本教程的目地而言,是否超级用户 并不重要.

如果你启动 psql 时碰到了问题,那么回到前面 的小节.诊断 psql 的方法和诊断 createdb 的方法很类似,如果后者能运行那么 前者也应该能运行.

psql 打印出的最后一行是提示符,它表示 psql 正听着你说话,这个时候你就可以敲入 SQL 查询到一个 psql 维护的 工作区间中.试验一下下面的命令∶

mydb=>; SELECT version();
                            version
----------------------------------------------------------------
PostgreSQL 7.2devel on i586-pc-linux-gnu, compiled by GCC 2.96
(1 row)

mydb=>; SELECT current_date;
    date
------------
2001-08-31
(1 row)

mydb=>; SELECT 2 + 2;
?column?
----------
        4
(1 row)

psql 程序有一些不属于 SQL 命令的内部命令. 它们以反斜扛开头,"\". 有些这种命令在欢迎信息中列出.比如,你可以用下面的命令 获取各种PostgreSQL SQL 命令的帮助语法∶

mydb=>; \h

要退出 psql,键入

mydb=>; \q
然后 psql 就会退出并且给你返回命令行 shell. (要获取更多有关内部命令的信息,你可以在 psql 提示符上键入 \?.)psql 的 完整功能在参考手册中有文档.如果 PostgreSQL 安装正确,那么你还可以在操作系统的 shell 提示符上键入 man psql 来阅读该文档.在这份文档里,我们将 不会明确使用这些特性,但是你自己可以在合适的时候使用它们.
分享到:
评论

相关推荐

    postgreSQL经典教程

    ### PostgreSQL经典教程知识点详解 #### 一、PostgreSQL概述与特点 **1.1 关于PostgreSQL** - **开源性质**:PostgreSQL是一款强大的开源关系型数据库系统。 - **广泛认可**:它受到数据库开发商和开源社区的高度...

    php Symfony 经典教程

    它使用 PHP 语言编写,支持多种数据库管理系统,包括 MySQL、PostgreSQL、 SQLite 等。Symfony 框架的主要特点包括: * 高度的可扩展性:Symfony 框架的核心组件可以根据需要进行扩展和修改。 * 灵活的框架结构:...

    zeosdbo-7.2.4-stable完整数据库控件.zip

    1. **多数据库支持**:ZeosDBO 支持多种数据库系统,如 MySQL, PostgreSQL, Oracle, Firebird, Interbase, SQLite, Microsoft SQL Server 等,通过单一的 API,开发者可以方便地在不同的数据库间切换。 2. **跨平台...

    python教程学习路线学习教程

    这篇教程将带你逐步走进Python的世界,从基础到进阶,让你全面掌握Python编程。 **第1章 初识Python** 1.1 Python介绍:Python是由Guido van Rossum在1991年创建的,它是一种解释型、面向对象、动态类型的编程语言...

    零起点 drupal 教程 原创

    **7.2 用户管理** - 包括用户的创建、编辑、删除等操作。 **7.3 用户设置** - 用户账户的个性化设置。 **7.4 角色** - 角色是一组权限的集合,可以为用户分配不同的角色。 **7.5 访问规则** - 控制用户访问...

    centos下php安装pgsql和pdo_pgsql扩展,这是另一种方法,很简便,用.so文件来安装

    在本教程中,我们将探讨一种简便的方法,通过使用.so库文件直接安装这些扩展。 首先,.so文件是Linux下的动态链接库文件,它们包含了可被多个程序共享的代码和数据。在PHP中,这些扩展通常以.so文件的形式存在,供...

    一份关于navicat的大纲教程!!!!

    Navicat 是一款集成了多种数据库管理功能的软件,它支持多种数据库系统,包括 MySQL、PostgreSQL、SQLite、MariaDB 等。通过 Navicat,用户可以方便地进行数据库的管理、开发、同步以及各种数据库维护任务。 **1.2 ...

    phpbu:PHP备份实用程序-创建和加密数据库和文件备份,将备份同步到其他服务器或云服务,并帮助您监视备份过程

    如果您尚未使用php 7.2或更高版本,则仍可以使用phpbu 版如果您落后于php 7.0,则仍可以使用phpbu版本产品特点创建备份ArangoDB 目录弹性搜索InfluxDB Ldap MongoDB MySQL Percona XtraBackup PostgreSQL雷迪斯压缩...

    netbeans安装文件

    此外,它可以与Web服务器(如Apache、Nginx)和数据库(如MySQL、PostgreSQL)无缝集成,便于进行本地开发。 9. **学习资源**:对于初学者,NetBeans提供了详细的在线帮助文档和教程,帮助快速上手。社区和网站上的...

    在CentOS中部署多节点Citus集群的详细步骤

    本教程将分两部分进行讲解:一是所有节点上的通用配置;二是协调节点(Coordinator Node)上的特殊配置。通过这些步骤,您可以顺利地在CentOS环境中搭建起一个高效稳定的Citus集群。 #### 1. 所有节点通用配置步骤 ...

    TP5.0企业站开发

    - **PHP版本**:推荐使用PHP7.2及以上版本。 - **安装步骤**: - 安装PHP环境。 - 安装并配置Web服务器。 - 配置数据库连接信息。 - 克隆或下载TP5.0框架源码至服务器。 - 进行基本配置(如修改数据库配置文件...

    [1分]activity 5.16中文用户手册,非常实用

    ##### 7.2 快速入门教程 - **10分钟教程:** 涵盖了从安装到运行一个简单流程的全过程。 ##### 7.3 BPMN 2.0结构 - **事件(Event):** 包括开始事件、结束事件、边界事件等。 - **网关(Gateway):** 用于控制流程...

    fundamentos-nodejs

    本教程将深入探讨Node.js的基础知识,帮助你构建强大的网络应用。 一、Node.js概述 1.1 JavaScript在服务器端:Node.js的诞生 传统的JavaScript主要用于浏览器端,用于实现客户端的交互。然而,Node.js的出现打破...

    Spring and iBATIS

    本教程假设读者已经具备一定的Java基础,并对Spring框架有一定的了解。同时,读者也应该熟悉基本的数据库操作和SQL语言。 #### 三、准备工作 在开始之前,请确保已经安装了以下环境: - Java 开发环境 - Spring ...

    MYSQL

    1.6 顺应2000年 1.7 SQL一般信息和教程 1.8 有用的MySQL相关链接 2 MySQL 邮件列表及如何提问或报告错误 2.1 MySQL邮件列表 2.2 提问或报告错误 2.3 怎样报告错误或问题 2.4 在...

    SQL必知必会(第3版-PDF清晰版)part1

    7.2 拼接字段..... 38 7.3 执行算术计算..... 42 7.4 小结..... 43 第8章 使用数据处理函数...... 44 8.1 函数..... 44 8.2 使用函数..... 45 8.2.1 文本处理函数..... 46 8.2.2 日期和时间处理 函数..... 47 ...

    django tutorial

    ### Django 教程:高效构建 Web 应用 #### 一、开始使用 Django ##### 1.1 开发环境 在开始使用 Django 构建 Web 应用之前,首先需要设置一个良好的开发环境。这包括安装 Python 和 Django,以及配置必要的开发...

    MySQL中文参考手册

    o 1.7 SQL一般信息和教程 o 1.8 有用的MySQL相关链接 * 2 MySQL 邮件列表及如何提问或报告错误 o 2.1 MySQL邮件列表 o 2.2 提问或报告错误 o 2.3 怎样报告错误或问题 o 2.4 在邮件列表上回答问题的指南 * 3 ...

    MySQL中文参考手册.chm

    1.6 顺应2000年 1.7 SQL一般信息和教程 1.8 有用的MySQL相关链接 2 MySQL 邮件列表及如何提问或报告错误 2.1 MySQL邮件列表 2.2 提问或报告错误 2.3 怎样报告错误或问题 ...

Global site tag (gtag.js) - Google Analytics