无法将postgresql数据库复制到新服务器,错误为[无法识别的参数“行安全性”]
我是PostgreSQL的新手。我已经成功地创建了数据库,将“philipyoung”——我的ID设置为超级用户,并使用下面的命令将本地数据库复制到elephantsql中的新服务器无法将postgresql数据库复制到新服务器,错误为[无法识别的参数“行安全性”],postgresql,Postgresql,我是PostgreSQL的新手。我已经成功地创建了数据库,将“philipyoung”——我的ID设置为超级用户,并使用下面的命令将本地数据库复制到elephantsql中的新服务器 pg_dump -C -h localhost -U localuser dbname | psql -h remotehost -U remoteuser dbname 然后发生下面的错误 SET SET SET SET SET ERROR: unrecognized configuration parame
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
如果您能提供任何帮助,我们将不胜感激。出现“row_security”错误可能是因为您的本地PostgreSQL版本比远程版本更新。这不是问题,除非您正在使用该功能
“权限被拒绝”和“用户X不存在”错误是失败的原因。您正试图以没有权限在远程服务器上创建数据库的用户身份还原数据库。然后,它找不到相关的用户,然后您也没有将该用户设置为远程访问
用户在数据库之间共享,而不是与数据库一起复制
所以-你想做一些类似的事情:
如果可能,尝试在两台服务器上运行相同版本的PostgreSQL。如果他们确实需要沟通,这会让事情变得更容易。我也遇到过同样的问题。。数据库是Postgres9.4,我使用了9.5中的pgdump和psql。尝试导入转储文件时遇到很多问题。
感谢您的解决方案,Richard!在本地版本上降级我的Postgre版本就可以了。在完全不同的上下文中,我使用免费的Heroku服务来了解真实场景中的RESTfulAPI。他们没有给我克隆本地数据库的权限,因为我正在使用免费计划。是否可以在线将所有表克隆到提供的数据库?谢谢恐怕我不是Heroku用户-您必须阅读他们的文档。假设你不能在Heroku端安装任何东西,你要么放弃远程端的所有数据并再次上传,要么编写你自己的差异生成脚本。确定它解决了问题,因为如果你导出(转储)客户端版本为9.5的数据库将在脚本中添加9.4不支持的标志/命令。