首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
Linux资讯 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>linux数据库>postgre>正文

PostgreSQL7.2教程(1)

http://www.oklinux.cn  2007-02-09  来源: oklinux收集整理   会员收藏  游客收藏  【 】 


  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.2. 创建一个数据库
  
  看看你能否访问数据库服务器的第一个例子就是试着创建一个数据库. 一台运行着的 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.3. 访问数据库
  
  一旦你创建了数据库,你就可以访问它∶
  
  运行 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 来阅读该文档.在这份文档里,我们将 不会明确使用这些特性,但是你自




上一篇:Linux下vsftpd的安全化的配置   下一篇:PostgreSQL7.2教程(2)


收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·PostgreSQL7.2教程(2)
·在RedHat7.0上安装和配置PostgreSQL
·Python入门第十章 进一步学习
·Python入门第九章 类
·Python入门第八章 错误与例外
·Python入门第七章 输入输出
·Python入门第六章 模块
·Python入门第五章 Python数据结构
·Python入门第四章 流程控制
·Python入门第三章 基本使用
·Python入门第二章 解释程序的使用
·Python入门第一章 介绍
·Python 的内置数值类型
·探索 Python 类型的层次结构(2)
·探索 Python 类型的层次结构(1)
·将你的网站从MySQL改为Postgre SQL
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·在Ubuntu和Debian系统下安装PostgreSQL
·如何从网络上登录其它计算机的PostgreS
·Ubuntu系统下安装和配置PostgreSQL 8.1
·在RedHat7.0上安装和配置PostgreSQL
·PostgreSQL7.2教程(2)
·Python入门第十章 进一步学习
·Python入门第九章 类
·Python入门第八章 错误与例外
·Python入门第七章 输入输出
·Python入门第六章 模块
·Python入门第五章 Python数据结构
·Python入门第四章 流程控制
  阅读排行
·Python入门第七章 输入输出
·PostgreSQL 最新8.2版发布
·PostgreSQL介绍及安装指南
·PostgreSQL 的热备和恢复
·PostgreSQL 7.2 教程 (1)
·PostgreSQL入门,V0.9.3+++
·在Linux上安装postgresql的全过程
·源码安装Postgresql8.1.3+PostGIS1.1.2
·Sqlite中文排序研究
·ucLinux下sqlite数据库移植全攻略
·将你的网站从MySQL改为PostgreSQL
·Linux下mySQL数据库开发技术
·Linux实时内存数据库eXtremeDB性能
·postgresql访问认证设置
·BI相关的开源工具
网摘收藏: