你能解释导出,然后导入ProgreSQL使用phpPgAdmin? (什么是权限?)

赏金编辑:我已经离开了原来的问题,但希望Postgres似乎沐浴在整个权限崩溃很好的答案。
' 导入和导出客户数据库:现场指南'

我今天刚刚得到这份工作,我们需要使用PostgreSQL 。

客户端有两个主机,他们只使用phpPgAdmin来访问数据库。 没有SSH。

我们需要导出数据,然后将其导入本地开发机器。

明智的方式MySQL我有点失去正确的过程。

有PostgreSQL >>数据库>>导出
从那里得到:
替代文字

我一直在写文档,但是要告诉你实话,我找不到一个简单的解释,并且现在不关心db或Postgres。 我们所需要做的就是解决网站PHP。

给我一个大纲/ cheatsheet /指导我的系统pipe理员syblings。

编辑:
改变了这个问题,包括导入数据库的PostgreSQL权限。
就权限而言,设置一个新的PostgreSQL服务器似乎更多。

我特别要求关于phpPgAdmin,因为我的服务器不是localhost&没有GUI。

我觉得这是一个权限的东西http://pgedit.com/public/sql/acl_admin/index.html

澄清没有SSH客户端框。

在整个过程中仍然找不到简明的文档。 直到我有一个更清晰的想法,我才真正避免了任务。 可能会转换成MySQL数据库,以方便。

出口

  1. login
  2. 导航到“导出”选项卡
  3. 点击“结构和数据”单选button
  4. 点击“下载”单选button
  5. 点击“导出”button并保存到本地机器。

import

  1. 导航到http://www.pgadmin.org/下载pgAdmin III (一个更好的免费Postgres GUI工具)
  2. 安装它
  3. 用它来满足你所有的Postgres需求。

关于权限,只需打开数据库转储(纯文本),并查找它尝试更改当前用户或设置表的所有者的行。 然后,只需进行search/replace,并用新的用户名replace原来的所有者。 D.根本不必担心授予/更改权限:D

原来的db / table所有者是开发人员,我们一直准备发布时需要将其更改为客户帐户。

我们总是使用pg_dump和其他相关的命令行工具从控制台工作,但我期望这些映射到您在Web界面中获得的选项。

phpPgAdmin导出使用pg_dump。 你可以阅读,如果你想知道它在做什么。

您可能还想要将其导出为SQL而不是COPY。 COPY是Postgres的,如果你想尝试使用不同的数据库,你需要SQL。 如果您习惯于不同的数据库,则也更容易理解。

你会得到什么“结构和数据”是一个SQL文件,将开始与数据库表结构,然后所有的数据,然后约束和关键。

正如sascha指出的那样,您可能会遇到权限问题。 我总是发现只删除权限行或将它们注释掉是比较容易的,因为这只是一个开发数据库。 删除/评论/更改其中的“所有者”的行。 喜欢

 ALTER TABLE schema.table OWNER TO pguser; 

每个CREATE TABLE语句在设置表所有者之后都有其中的一个。

input

如果你有SQL错误(我经常看到,这取决于数据。字符奇怪的string可能是一个痛苦),它可能更容易拆分文件,只是先复制结构,并作为一个标准运行SQL查询。 然后从数据开始,一次导入一张表。 当您将其切分为部分时,可以更容易地find错误。 特别是在处理非常无用的错误信息时。

是的,这是很多复制和粘贴工作,但它完成了工作,可能需要更less的时间,然后将其移植到MySQL,然后不得不更改PHP连接,并从MySQL而不是Postgres获取数据。

PhpPgAdmin和pgadminIII都有能力运行SQL语句。

pgAdminIII – >select数据库 – >select“运行任意SQL查询”button。 PhpPgAdmin – >select数据库 – >select“SQL”链接。

老实说,这是我发现的移动数据库最恼人的方式。 这需要更长的时间,但只有当你没有遇到错误。

运行,不要离开您的托pipe服务提供商。 你希望直接访问数据不仅通过phppgadmin。

在这些情况下phppgadmin(以及phpmyadmin)有一个巨大的问题。 你将无法获得转储。

推理:用PHP和Apache你有一个最大。 执行时间以及运行脚本的内存限制。 现在就执行时间/内存而言,现在可能不是问题,但是随着数据库的增长,你将会遇到它。

为了获得一个良好的转储,你至less需要访问数据库(如果数据库直接暴露给networking,那么应该是SSL安全的)。 通过SSH或直接通过psql,否则我真的不看到一个很好的select得到转储。 phppgadmin(或phpmyadmin)可能会方便浏览数据库做一些改变,做一些(小)select等,但不是如果你需要获得可能的海量数据。

我已经在各种场合使用这两种工具,在执行备份/恢复时,PHP超时或内存使用量过大。

至于指南如何备份原始postgres文档通常是非常好的: http : //www.postgresql.org/docs/8.3/static/backup.html

现在为您的问题如何获得一个漂亮的数据库转储:

  • 使用“正常”的SQL格式(是的,文档说慢得多,但我发现它是最可靠的select)
  • 不要在phppgadmin中“显示”转储,而是下载它(根据php的安装和创build转储所需的时间,gzipped或不可能工作或不工作,实际上对于“show”选项也是如此)

我不能强调足以让SSH或psql直接访问主机。 如果您的托pipe服务提供商不会授予您访问权限,请设置本地PostgreSQL创build一个操场数据库,并向其发送您希望使用的pg_dump命令,让他们将其放在SSL和密码保护的目录中,并从那里下载。