我是PostgreSQL的新手。我已经成功创建了数据库,设置了" philipyoung" -my ID作为超级用户,并使用下面的命令将本地数据库复制到elephantsql中的新服务器。
pg_dump -C -h localhost -U localuser dbname | psql -h remotehost -U remoteuser dbname
然后发生以下错误
SET
SET
SET
SET
SET
ERROR: unrecognized configuration parameter "row_security"
ERROR: permission denied to create database
ERROR: role "philipyoung" does not exist
FATAL: no pg_hba.conf entry for host "xxx.xxx.xxx.xx", user "xxxx", database "xxxx", SSL on
任何帮助将不胜感激
答案 0 :(得分:8)
" row_security"错误可能是因为你在本地有一个比在远程端更新版本的PostgreSQL。除非您使用该功能,否则这不是问题。
"许可被拒绝"和"用户X不存在"错误是它失败的原因。您正在尝试将数据库还原为无权在远程服务器上创建数据库的用户。然后,它无法找到相关用户,然后您也无法设置该用户进行远程访问。
用户在数据库之间共享,不与他们一起复制。
所以 - 你想做类似的事情:
如果您不想授予对数据库的远程访问权限,则可能需要创建ssh隧道(Internet上的大量示例)或转储到文件(使用" -Fc"自定义,压缩格式)并首先将转储复制到远程计算机。
如果可能,尝试在两台服务器上运行相同版本的PostgreSQL。如果他们确实需要沟通,它会使事情变得更容易。
答案 1 :(得分:0)
我遇到了同样的问题。数据库是Postgres 9.4,我使用了9.5的pgdump和psql。尝试导入转储文件时遇到很多问题。 picture