【发布时间】:2014-01-21 17:36:43
【问题描述】:
我已将我的数据存储从默认 /var/lib/pgsql/9.3/data 移动到新磁盘以提高性能。一切顺利,服务器启动正常,但它停止接受 5432 端口上的请求。我已经做了一些研究,到目前为止,我了解到可能是在我的 linux 发行版(CentOS 9.5)而不是/tmp/.s.PGSQL.5432 下,它被配置为使用其他路径。我试图改变 unix_socket_directories 但没有成功。
任何想法如何解决这个问题?
编辑
以下是我更改数据文件夹的步骤
#In /etc/init.d/postgresql-9.3
PGDATA=/my_new_disc/pgdata/data
PGLOG=/my_new_disc/pgdata/data/pgstartup.log
# under root user
> mkdir /my_new_disc/pgdata/data
> chmod 775 /my_new_disc/pgdata/data
> chown postgres/my_new_disc/pgdata/data
# switch to postgres user
> su postgres
> initdb /my_new_disc/pgdata/data
在此之后,我能够成功运行服务,并且可以看到 Postgres 正在侦听端口 5432,但只能在以 postgres 用户身份登录时进行连接。
当我尝试时,即使是同一台机器上的 root 用户也无法正常工作
psql -h localhost -U postgres postgres
它要求输入密码并说连接失败。
EDIT2:
我在想的另一个选择是使用符号链接...会更好吗?
【问题讨论】:
-
检查 PostgreSQL 数据目录中的服务器错误日志。那里有错误输出吗?另外:您在移动数据目录之前是否停止了 PostgreSQL?
-
您是否在启用 SELinux 的情况下运行?
-
@Craig 日志中没有消息......它只是不接受 5432 端口上的任何请求,是的,当时数据库已关闭。
-
@Tamerlane Scott 说得好。
getenforce(作为 shell 命令运行)的输出是什么?dmesg中是否有任何 SELinux 否认? PostgreSQL真的在运行吗?ps -f -u postgres. -
@ScottMarlowe 我检查了 SELinux 已禁用。
标签: database linux postgresql ubuntu centos