Saš*_*aba 66 postgresql vagrant
我正试图psql
在我的Vagrant机器上运行,但是我收到了这个错误:
psql: 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"?
Run Code Online (Sandbox Code Playgroud)
注意:Vagrant 1.9.2 Box:ubuntu/trusty64,https://atlas.hashicorp.com/ubuntu/boxes/trusty64
编辑 命令我用来安装和运行postgres:
sudo apt-get update
sudo apt-get install postgresql
sudo su postgres
psql -d postgres -U postgres
mal*_*dao 108
我遇到了同样的问题,与我的pg_hba.conf文件(位于/etc/postgresql/9.6/main
)的配置有关.请注意9.6是我正在使用的postgresql版本.
错误本身与postgresql的配置错误有关,导致服务器在启动之前崩溃.
我建议按照这些说明操作:
sudo service postgresql start
pg_lsclusters
从您的终端运行检查您正在运行的集群是什么,输出应该是这样的:
版本 - 群集端口状态所有者数据目录
9.6 ------- main - 5432在线postgres /var/lib/postgresql/9.6/main
忽略'---'标志,因为它们仅用于对齐.重要的信息是版本和集群.您还可以在状态列上检查服务器是否正在运行.
pg_ctlcluster <version> <cluster> start
所以在我的情况下,使用版本9.6和群集'main',它将是pg_ctlcluster 9.6 main start
/var/log/postgresql/postgresql-<version>-main.log
,所以在我的情况下,完整的命令就是sudo nano /var/log/postgresql/postgresql-9.6-main.log
.2017-07-13 16:53:04 BRT [32176-1]日志: 无效认证方法"全部"
2017-07-13 16:53:04 BRT [32176-2] CONTEXT:配置文件第90行"/ etc /postgresql/9.5/main/pg_hba.conf"2017-07-13
16:53:04 BRT [32176-3]致命:无法加载pg_hba.conf
sudo service postgresql restart
,它应该没问题.我已经搜索了很多来找到这个,这篇文章归功于此.
祝你好运!
nic*_*odp 42
这两个步骤在 Mac 上为我解决了这个问题:
rm /usr/local/var/postgres/postmaster.pid
brew services restart postgresql
Run Code Online (Sandbox Code Playgroud)
编辑:
如果您遇到此问题(@luckyguy73 报告): psql: FATAL: database "postgresql" does not exist
你可以跑
brew postgresql-upgrade-database
Run Code Online (Sandbox Code Playgroud)
要解决这个问题。
mar*_*sek 22
pg_ctl -D /usr/local/var/postgres start
FATAL: could not open directory "pg_tblspc": No such file or directory
.mkdir /usr/local/var/postgres/pg_tblspc
FATAL: lock file "postmaster.pid" already exists
rm /usr/local/var/postgres/postmaster.pid
pg_ctl -D /usr/local/var/postgres start
小智 8
警告:这将删除数据库
使用命令:
rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8
Run Code Online (Sandbox Code Playgroud)
我只是将其发布给任何人,就像我发现此问题时一样,感到迷茫和绝望。似乎有时通过编辑一些与psotgresql相关的配置文件,可能会意外更改文件的权限:
注意pg_hba.conf是如何属于root的,用户甚至无法读取它。这导致postgres无法打开该文件,因此无法启动服务器,从而引发原始问题中看到的错误。
通过运行
sudo chmod +r pg_hba.conf
我能够使该文件再次可供postgres用户访问,然后在运行后
sudo service postgresql start
能够使服务器再次运行。
小智 7
警告:这将删除数据库
在 zsh 中:
rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8
Run Code Online (Sandbox Code Playgroud)
在无数小时的故障排除后,这是唯一对我有用的方法。
是否/etc/postgresql/9.6/main/postgresql.conf
显示正在分配的端口?在我的默认 Xubuntu Linux 安装中,由于某种原因,我的显示 port = 5433 尽我所能,但我确实注释掉了同一个文件中的那行,listen_addresses = 'localhost'
并取消了该行的注释listen_addresses = '*'
。所以也许开始并检查那里。希望有帮助。
小智 6
我能够通过运行解决该问题:
sudo systemctl start postgresql@9.5-main
Run Code Online (Sandbox Code Playgroud)
这对我有用:
pg_ctl -D /usr/local/var/postgresql@9.6 stop;
brew services stop postgresql@9.6;
brew services start postgresql@9.6;
Run Code Online (Sandbox Code Playgroud)
就我而言,Postgres 是通过 Homebrew Services 进行管理的(即通过brew services start postgresql@10
我使用的 Postgres 10 的终端命令启动),对于该设置,我必须发现几个必要的步骤,然后才能应用此线程中的任何建议。所以我想分享那篇文章,因为它可能会对具有相同设置的人有所帮助。
注意:以下所有命令都应在终端中运行。
简单介绍一下背景知识:升级到 macOS Big Sur 后,我发现 Postgres 无法工作并且运行会导致psql
上述原始问题中提到的错误。我尝试启动 Postgres(通过brew services start postgresql@10
命令),这导致了一条消息Service postgresql@10 already started
。如果我尝试重新启动它(通过brew services restart postgresql@10
),我会收到一条消息,表明它已停止,然后成功启动。但!这是一个误导性的消息,我花了相当长的时间搜索配置问题等,才发现该服务实际上并未成功启动。
所以,调查这个问题的方法是:
brew services start postgresql@10
(后一个参数可能会有所不同,具体取决于您的 Homebrew 软件包名称,例如postgresql@12
或普通postgresql
)。brew services list
。该命令为您提供服务的真实状态。就我而言,它说 Postgres 的状态是错误的:Name Status User Plist
postgresql@10 error Denis /Users/Denis/Library/LaunchAgents/homebrew.mxcl.postgresql@10.plist
redis started Denis /Users/Denis/Library/LaunchAgents/homebrew.mxcl.redis.plist
nano /Users/Denis/Library/LaunchAgents/homebrew.mxcl.postgresql@10.plist
检查过它)。StandardErrorPath
密钥,然后打开位于该密钥的值中的文件,即在<string>
该密钥后面的标签中。就我而言,是的/usr/local/var/log/postgresql@10.log
。nano /usr/local/var/log/postgresql@10.log
然后Alt+/
转到文件末尾)。lock file "postmaster.pid" already exists
已经在前面的答案中涵盖了,加上在我的例子中在错误消息中检查的路径/usr/local/var/postgresql@10
)。我无法使用该psql
命令进行连接,并不断收到错误无法连接到服务器:没有这样的文件或目录。
步骤1:检查Postgres集群的状态
$ pg_lsclusters
步骤2:重启Postgres集群
$ sudo pg_ctlcluster 12 main start
确保将 12 替换为您的 Postgres 版本
第三步:再次检查并连接
$ pg_lsclusters
$ sudo -i -u postgres
$ psql
归档时间: |
|
查看次数: |
121422 次 |
最近记录: |