PostgreSQL:关于 socket 文件 "/tmp/.s.PGSQL.nnnn" 丢失处理

前端之家收集整理的这篇文章主要介绍了PostgreSQL:关于 socket 文件 "/tmp/.s.PGSQL.nnnn" 丢失处理前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在学习 Postgresql 的过程中,相信很多人都遇到过下面这个错误错误代码如下:

1、解决方法: export PGHOST=localhost

一 问题描述 --1.1 错误代码 [pg92@redhatB ~]$ psql psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGsql.1921"? 备注:报错信息已经很显示,找不到文件 /tmp/.s.PGsql.1921。 --1.2 查看 /tmp [root@redhatB tmp]# ll -alrt /tmp | grep "1921" -rw-------. 1 pg92 pg92 56 4月 24 20:42 .s.PGsql.1921.lock 备注:可以看到,文件 /tmp/.s.PGsql.1921 不存在。 --1.3 关于 "/tmp/.s.PGsql.1921" 文件 先来看看 socket 文件 "/tmp/.s.PGsql.1921",其中 1921 是 pg 的端口号; socket 文件可以通过 postgresql.conf 文件以下参数配置: #unix_socket_directory = '' #unix_socket_permissions = 0777 备注:其中参数 unix_socket_directory 用来配置 socket 文件的目录,默认是 /tmp 目录,参数 unix_socket_permissions 用来设置 socket 文件的权限。 回到开头的问题,如何解决呢?这里提供两种方法。 二 方法一: 使用 -h 连接参数 [pg92@redhatB ~]$ psql psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGsql.1921"? [pg92@redhatB ~]$ [pg92@redhatB ~]$ psql -h 127.0.0.1 psql (9.2.1) Type "help" for help. postgres=# \q 备注:指定 -h 参数后,不再报之前的错。 三 方法二:重启数据库 --3.1 重启数据库 [pg92@redhatB ~]$ pg_ctl stop -m fast -D $PGDATA waiting for server to shut down.... done server stopped [pg92@redhatB ~]$ pg_ctl start -D $PGDATA server starting --3.2 再次查看 socket 文件 [root@redhatB tmp]# ll -alrt /tmp | grep "1921" -rw-------. 1 pg92 pg92 56 4月 24 21:06 .s.PGsql.1921.lock srwxrwxrwx. 1 pg92 pg92 0 4月 24 21:06 .s.PGsql.1921 备注:数据库重启后,在 /tmp 目录下会产生 .s.PGsql.1921 文件。 --3.3 连接测试 [pg92@redhatB ~]$ psql psql (9.2.1) Type "help" for help. postgres=# 备注:这时 psql 连接时不再报之前的错。 四 疑问: 有没有不重启,也不带 -h 参数的方法解决这个问题? 目前还没找到不重启,也不带 -h 参数就能解决方法,本人也测试过复制文件 .s.PGsql.1921 到 /tmp 目录,但不带 -h 参数的连接依然会报这个错,有兴趣的朋友可以自己试一试。 原文链接:https://www.f2er.com/postgresql/194823.html

猜你在找的Postgre SQL相关文章