在尝试安装最新稳定的Postgres(版本9.3)时,我遇到了基于Amazon Linux(基于CentOs)的实例的问题。
该版本没有发布在该发行版的主存储库中,我尝试了Postgres download site中提供的一些RPM。 CentOs和Fedora版本没有用,因为他们抱怨我正在使用的发行版不是他们所做的那个。 Red Hat .rpm运行良好,我可以看到yum可用的新软件包。
我使用了以下内容:
wget http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-redhat93-9.3-1.noarch.rpm
rpm -Uvh pgdg-redhat93-9.3-1.noarch.rpm
所以,我安装了我感兴趣的版本的Postgres软件包:
yum install postgresql93 postgresql93-devel postgresql93-server
到目前为止,这么好。一切都安装得很好(只是一个PHP包冲突,但我搞砸了。)
如每个博客和帮助页面所述,我初始化了数据库。对我来说,需要更改PORT,所以我在/etc/init.d/postgresql-9.3
脚本中执行了此操作,将端口更改为5552,此框中提供了该端口。要初始化和启动服务器,没有什么新东西:
service postgresql-9.3 initdb
service postgresql-9.3 start
(服务名称有版本,与主流亚马逊存储库安装的服务不同)
它只是有效。在尝试使用psql
实用程序
[root@local]# su - postgres
-bash-4.1$ psql
psql: FATAL: role "postgres" does not exist
像往常一样,我也不能用root来做,但是对于用户“postgres”,至少应该创建角色似乎是合理的。
出于同样的奇怪原因我无法使用createdb
。我在bin文件夹中尝试的任何可能与数据库交互的操作都收到了同样的错误。为此,我坚持使用“工作”数据库但没有用户能够连接到它。
搜索我可以找到的提示时,总是与尝试使用 root 用户进行连接的用户相关,解决方案是使用 postgres 用户而我是正如你所见,这样做。
这是在尝试9.3版时发生的问题。当我尝试使用存储库包(仍然是9.2)时,它运行得很好。我可以正常连接和测试数据库。
在此软件包之前,我尝试从源代码编译Postgres,但依赖的地狱并没有让我离开。
是否还有其他调整我可能会丢失,需要一些软件包甚至猜测你可以分享以帮助我解决这个问题?
答案 0 :(得分:3)
在使用yum在centOS上安装Postgresql后,我遇到了同样的问题。问题在于Postgresql附带了一个名为postgres
的内置用户,您应该使用它来执行首次登录。所以,试试吧:
su - postgres
psql
然后,您可以创建数据库,用户等。 希望这有帮助!
答案 1 :(得分:0)
我认为你已经发现了这个问题:所有的操作都需要" postgres" user,由postgresql系统设置的用户,作为数据库的管理员。 root用户不能这样做。
从我以前的经验来看,其中一个方法是:尝试重启服务(sudo service postgresqlxxx restart)。如果出现问题,重启过程将报告错误。
正如我所说,这个用户是数据库的管理员,你无法解决它。如果所有这些都不起作用,那么只需使用" sudo yum install"
重新安装它