注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

星期五

明天不上班

 
 
 

日志

 
 
关于我

一个特立独行的Java程序员,比较宅,上上网,写博客,听音乐,看电影。

网易考拉推荐

PostgreSQL连接常见问题  

2010-11-23 21:21:05|  分类: Postgresql |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
PostgreSQL 连接常见问题:
---------------------------------------------------------------------------------------------
要创建一个新的数据库,在我们这个例子里叫 mydb,你可以使用下面的命令:
$ createdb mydb

它应该生成下面这样的响应:

CREATE DATABASE

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

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

createdb: command not found

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

$ /usr/local/pgsql/bin/createdb mydb

在你的节点上这个路径可能不一样。和你的管理员联系或者看看安装指导获取正确的位置。

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

createdb: could not connect to database template1: could not connect to server:
No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

这意味着该服务器没有启动,或者没有在 createdb 预期的地方启动。同样, 你也要检查安装指导或者找管理员。

另外一个响应可能是这样:

createdb: could not connect to database template1: FATAL:  user "joe" does not
exist

在这里提到了你自己的登陆名。如果管理员没有为你创建 PostgreSQL 用户帐号, 就会发生这些现象。(PostgreSQL 用户帐号和操作系统用户帐号是不同的。) 如果你是管理员,参阅 Chapter 17 获取创建用户帐号的帮助。 你需要变成安装 PostgreSQL 的操作系统用户的身份(通常是 postgres)才能创建第一个用户帐号。 也有可能是赋予你的 PostgreSQL 用户名和你的操作系统用户名不同; 这种情况下,你需要使用 -U 开关或者使用 PGUSER 环境变量声明你的 PostgreSQL 用户名。

如果你有个数据库用户帐号,但是没有创建数据库所需要的权限,那么你会看到下面的东西:

createdb: database creation failed: ERROR:  permission denied to create database

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

-----------------------------------------------------------------------------------------------------------------------------

以上是摘抄PostgreSQL8.0的手册一部分

我们经常安装完成PostgreSQL,启动服务,输入命令后
经常会遇到没有该用户 或者 用户没有权限
那是因为使用命令时 如果没有使用-U username 的话PostgreSQL会使用当前系统的登录用户名去连接数据库
当然会出现该用户名不存在 或 没权限 我们安装时填写的用户名是postgres

所以像createdb -U postgres mydb 这样才对啦



下面还有一段摘抄的Note

解释:
PostgreSQL 用户名是和操作系统用户账号分开的。 如果你与一个数据库联接,你可以选择以何种 PostgreSQL 用户名进行联接; 如果你不选择,那么缺省就是你的当前操作系统账号。 如果这样,那么总有一个与操作系统用户同名的 PostgreSQL 用户账号用于启动服务器, 并且通常这个用户都有创建数据库的权限。如果你不想以该用户身份登陆, 那么你也可以在任何提防声明一个 -U 选项以选择一个联接的 PostgreSQL 用户名
  评论这张
 
阅读(807)| 评论(0)
推荐

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017