Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在OSX上导入PostgreSQL转储_Sql_Database_Macos_Postgresql_Postgres.app - Fatal编程技术网

在OSX上导入PostgreSQL转储

在OSX上导入PostgreSQL转储,sql,database,macos,postgresql,postgres.app,Sql,Database,Macos,Postgresql,Postgres.app,我以前只使用过MySQL。博士后对我来说有点不同。我正在尝试使用OSX的Postgres.app。我有一个来自开发服务器的数据库转储,我想创建正确的用户角色,并将数据库导入本地计算机,这样我就可以在家里进行开发(无法远程访问数据库) 我想我已经创建了用户\du显示具有CreateDB权限的适当用户。然后我使用了\I~/dump.sql,它似乎已经导入了数据库。但是,当我使用\l列出数据库时,它不会显示。因此,我尝试使用psql-U用户名登录,但它告诉我“致命:数据库用户名不存在。”这不是登录的正

我以前只使用过MySQL。博士后对我来说有点不同。我正在尝试使用OSX的Postgres.app。我有一个来自开发服务器的数据库转储,我想创建正确的用户角色,并将数据库导入本地计算机,这样我就可以在家里进行开发(无法远程访问数据库)

我想我已经创建了用户\du显示具有CreateDB权限的适当用户。然后我使用了\I~/dump.sql,它似乎已经导入了数据库。但是,当我使用\l列出数据库时,它不会显示。因此,我尝试使用psql-U用户名登录,但它告诉我“致命:数据库用户名不存在。”这不是登录的正确开关吗?这是帮手说的

我对一些简单的事情感到沮丧,所以我感谢任何帮助。使用Postgres.app,我如何使用密码创建必要的用户并导入数据库?谢谢你的帮助

-U
使用psql指定用户名是正确的,但最后一个标记是此处的数据库名称。这说明您没有指定任何用户,数据库是用户名。尝试在后面添加数据库名称,即
psql-U username数据库


有关myriad Switchs psql支持的更多信息,请参阅。

听起来您可能已将转储加载到所连接的数据库中。如果启动
psql
时未指定数据库,则该数据库将以您的用户名命名。这取决于创建转储文件时与
pg_dump
一起使用的选项

尝试:


就个人而言,我建议始终使用
pg_dump-Fc
来创建自定义格式转储,而不是SQL转储。它们更易于使用,
pg_restore
比使用
psql
恢复转储要好得多。

谢谢!这似乎解决了问题。我一定要记住将来使用
pg\u dump
/
pg\u restore
的信息。谢谢您提供的信息!我认为我缺乏博士后的经验是我的绊脚石。
 psql -v ON_ERROR_STOP=1

 CREATE DATABASE mynewdb TEMPLATE template0 OWNER whateverowneruser;
 \c mynewdb
 \i /path/to/dump/file.sql