如何在 12.04.2 LTS 上的 postgresql 9.2.4 中设置数据库

如何在 12.04.2 LTS 上的 postgresql 9.2.4 中设置数据库

我认为我的机器上的 PostgreSQL 运行正常:我有一个 PID 并且我看到 postgres 正在“监听”端口 5432。

我正在尝试创建一个数据库来进行实验,使用 C. Fehily 的书“Visual Quickstart SQL”中概述的“Book”数据库。

我尝试了很多方法,但都没有成功。最新的方法是:

$ su postgres
Password: 
postgres@piglet:/etc$ createdb books
createdb: could not connect to database postgres: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
postgres@piglet:/etc$ 

我不确定我是否在密码或授权方面遇到了困难,或者其他什么。我非常欢迎一些建议。提前谢谢!

答案1

如果 PostgreSQL 正在运行并且监听端口 5432,netstat但是运行时psql您会收到如下错误:

psql: could not connect to database postgres: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

那么问题很可能在于你正在使用psql系统中安装的较早版本的 PostgreSQL。此版本可能配置为使用不同的unix_socket_directory

最好的选择是将环境变量设置为指向包含旧版本之前的正确、等版本的PATH目录。psqlcreatedb

或者,您可以通过明确指定来使用 TCP/IP 连接-h localhost,例如:

psql -h localhost ...

(因此createdb -h localhost ...)。这将导致您使用旧版本的createdbpsql等命令,因此最好只设置您的。使用设置 unix 套接字路径也是PATH如此,这在某种程度上是一种高级选项。-h

修复PATH环境变量,一切都会好起来。你可以用类似下面的命令临时测试一下,其中你将用 PostgreSQL 9.2 安装下的目录/usr/pgsql-9.2/bin替换:bin

export PATH=/usr/pgsql-9.2/bin:$PATH
psql

如果可行,您需要通过编辑/etc/environment、您的.bash_profile或其他适当的设置文件来使更改永久生效。搜索“ubuntu 永久设置 PATH”获取更多信息。

相关内容