Postgres could not connect to server
在我进行了BREW更新和BREW升级之后,我的Postgres遇到了一些问题。我试着卸载Postgres并重新安装,但效果不太好。
这是错误消息。(当我尝试执行rake db:migrate时,也收到了此错误消息)
1 2 3 4 | $ 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.5432"? |
我怎么解决?
Mac版:山狮。
自制版本:0.9.3
Postgres版本:PSQL(PostgreSQL)9.2.1
这就是我所做的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | 12:30 ~/D/works$ brew uninstall postgresql Uninstalling /usr/LOCAL/Cellar/postgresql/9.2.1... 12:31 ~/D/works$ brew uninstall postgresql Uninstalling /usr/LOCAL/Cellar/postgresql/9.1.4... 12:31 ~/D/works$ psql --version bash: /usr/LOCAL/bin/psql: No such file OR directory 12:33 ~/D/works$ brew install postgresql ==> Downloading http://ftp.postgresql.org/pub/SOURCE/v9.2.1/postgresql-9.2.1.tar.bz2 Already downloaded: /Library/Caches/Homebrew/postgresql-9.2.1.tar.bz2 ...... ...... ==> Summary /usr/LOCAL/Cellar/postgresql/9.2.1: 2814 files, 38M, built IN 2.7 minutes 12:37 ~/D/works$ initdb /usr/LOCAL/var/postgres -E utf8 The files belonging TO this DATABASE system will be owned BY USER"laigary". This USER must also own the server process. The DATABASE cluster will be initialized WITH locale"en_US.UTF-8". The DEFAULT text SEARCH configuration will be SET TO"english". initdb: directory"/usr/local/var/postgres" EXISTS but IS NOT empty IF you want TO CREATE a NEW DATABASE system, either remove OR empty the directory"/usr/local/var/postgres" OR run initdb WITH an argument other than"/usr/local/var/postgres". 12:39 ~/D/works$ mkdir -p ~/Library/LaunchAgents 12:39 ~/D/works$ cp /usr/LOCAL/Cellar/postgresql/9.2.1/homebrew.mxcl.postgresql.plist ~/Library/LaunchAgents/ 12:39 ~/D/works$ launchctl LOAD -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist homebrew.mxcl.postgresql: Already loaded 12:39 ~/D/works$ pg_ctl -D /usr/LOCAL/var/postgres -l /usr/LOCAL/var/postgres/server.log START server starting 12:39 ~/D/works$ env ARCHFLAGS="-arch x86_64" gem install pg Building native extensions. This could take a while... Successfully installed pg-0.14.1 1 gem installed 12:42 ~/D/works$ psql --version psql (PostgreSQL) 9.2.1 12:42 ~/D/works$ 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.5432"? |
现在,在重新安装了howbrew之后,当我使用
但我在Rails应用程序中运行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | could NOT CONNECT TO server: No such file OR directory IS the server running locally AND accepting connections ON Unix DOMAIN socket"/var/pgsql_socket/.s.PGSQL.5432"? /usr/LOCAL/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:IN `initialize' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `NEW' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `connect' /usr/LOCAL/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:329:IN `initialize' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `NEW' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `postgresql_connection' /usr/LOCAL/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:309:IN `new_connection' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:319:in `checkout_new_connection' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:241:in `block (2 levels) in checkout' /usr/LOCAL/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:IN `loop' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `block IN checkout' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize' /usr/LOCAL/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:233:IN `checkout' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:96:in `block IN connection' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize' /usr/LOCAL/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:95:IN `connection' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:404:in `retrieve_connection' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:170:in `retrieve_connection' /usr/LOCAL/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:144:IN `connection' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:107:in `rescue IN create_database' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:51:in `create_database' /usr/LOCAL/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/DATABASES.rake:40:IN `block (3 levels) in <top (required)>' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `each' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `block (2 levels) in <top (required)>' /usr/LOCAL/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:205:IN `call' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:205:in `block IN EXECUTE' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:200:in `each' /usr/LOCAL/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:200:IN `execute' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:158:in `block IN invoke_with_call_chain' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize' /usr/LOCAL/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:151:IN `invoke_with_call_chain' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:144:in `invoke' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:116:in `invoke_task' /usr/LOCAL/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:IN `block (2 levels) in top_level' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `each' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `block in top_level' /usr/LOCAL/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:133:IN `standard_exception_handling' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:88:in `top_level' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:66:in `block in run' /usr/LOCAL/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:133:IN `standard_exception_handling' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:63:in `run' /usr/local/bin/rake:32:in `<main>' Couldn't create database for {"adapter"=>"postgresql","encoding"=>"unicode","database"=>"riy_development","pool"=>5,"username"=>nil,"password"=>nil} |
最后我找到了解决办法。
1 2 | $ sudo mkdir /var/pgsql_socket/ $ sudo ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/ |
这个解决方案有点棘手,但它是有效的。希望有更好的解决方案
更新
这对我也适用。
1 | rm /usr/LOCAL/var/postgres/postmaster.pid |
有一个类似的问题;一个PID文件阻止Postgres启动。修复它:
然后一切都好了。
这有时可能是Postgres升级的问题。
在我的例子中,它发生在从9.3升级到9.4的时候。
参见http://www.postgresql.org/docs/9.4/static/upgrading.html
操作系统X /自制程序:
尝试运行
在我的例子中,运行
感谢https://github.com/homebrew/homebrew/issues/35240提供该解决方案。
在重新生成了我的数据库(与
找到一个适合我的解决方案:
https://dba.stackexchange.com/questions/75214/psql-could-not-connect-to-server-no-such-file-or-directory
您基本上运行以下命令手动启动服务器:
1 | pg_ctl -D /usr/LOCAL/var/postgres -l /usr/LOCAL/var/postgres/server.log START |
在Yosemite上,如果pid文件阻止Postgres启动,并且您有一个
1 | $ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist |
然后删除pid文件
1 | $ rm /usr/LOCAL/var/postgres/postmaster.pid |
然后重新加载
1 | $ launchctl LOAD ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist |
如果用BREW安装和卸载Postgres不适合您,请查看PostgreSQL安装的日志或:
1 | postgres -D /usr/LOCAL/var/postgres |
如果您看到这种输出:
1 2 3 | LOG: skipping missing configuration file"/usr/local/var/postgres/postgresql.auto.conf" FATAL: DATABASE files are incompatible WITH server DETAIL: The DATA directory was initialized BY PostgreSQL version 9.4, which IS NOT compatible WITH this version 9.6.1. |
然后尝试以下操作:
1 | rm -rf /usr/LOCAL/var/postgres && initdb /usr/LOCAL/var/postgres -E utf8 |
然后启动服务器:
1 | pg_ctl -D /usr/LOCAL/var/postgres -l logfile START |
来源
对于任何阅读和使用postgres.app的人,您可能需要在database.yml中使用
1 | brew services START postgres |
为我工作!
检查套接字文件是否存在。
1 2 | $ ls -l /tmp/.s.PGSQL.5432 srwxrwxrwx 1 you wheel 0 Nov 16 09:22 /tmp/.s.PGSQL.5432 |
如果没有,请检查postgresql.conf中的unix_socket_目录更改。
1 2 3 4 | $ grep unix_socket /usr/LOCAL/var/postgres/postgresql.conf #unix_socket_directory = '' # (CHANGE requires restart) #unix_socket_group = '' # (CHANGE requires restart) #unix_socket_permissions = 0777 # BEGIN WITH 0 TO USE octal notation |
为我更新数据库
法国电力公司
这个问题也可以归咎于一个工艺的崩溃,该工艺的左侧后主.pid file behind。我做这个工作
1 2 3 | $ brew services stop postgresql $ rm /usr/LOCAL/var/postgres/postmaster.pid # adjust path accordingly TO your install $ brew services START postgresql |
当我从9.3.4升级到9.5时发生了这种情况,因为没有升级数据库是不兼容的。
我使用pg_升级如下:
停止邮递
1 | $ brew services stop postgresql |
升级数据库:
1 2 3 4 5 6 | $ pg_upgrade \ -d /usr/LOCAL/var/postgres \ -D /usr/LOCAL/var/postgres9.5 \ -b /usr/LOCAL/Cellar/postgresql/9.3.4/bin/ \ -B /usr/LOCAL/Cellar/postgresql/9.5.0/bin/ \ -v |
存档旧数据库:
1 2 | $ mv /usr/LOCAL/var/postgres /usr/LOCAL/var/postgres9.3.save $ mv /usr/LOCAL/var/postgres9.5 /usr/LOCAL/var/postgres |
重新启动Postgres:
1 | $ brew services START postgresql |
更新的gems(用于rails/active record):
1 2 3 | $ gem uninstall pg $ gem uninstall activerecord-postgresql-adapter $ bundle install |
这就是你应该做的:
您应该查看/usr/local/var/postgres/postmaster.pid
然后看文件的第一行-这是错误的PID
跑
1 | ps aux | grep <PID> |
例如:
1 | ps aux | grep 12345 |
然后做
1 | KILL <PID> |
例如
1 | KILL 12345 |
假设它还在运行
https://superuser.com/questions/553045/fatal-lock-file-postmaster-pid-already-exists-存在
不要听已接受的答案它是坏的,会损坏您的数据!!!!
没有上面的解决方案为我工作。
问题在于,在5432港口已经有了一个运行服务,我们无法通过该港口建立PSQL插座连接。
我重新打开套筒文件
1 | rm -rf /tmp/.s.PGSQL.5432/ |
然后我恢复邮政服务
1 | postgres -D /usr/LOCAL/var/postgres |
这是我的工作。
我不需要更改postresql或database.yml配置设置、更改$path或创建符号链接。我所需要做的只是
问题是PG GEM是在自制Postgres之前安装的,所以从MacOS附带的Postgres版本中获取设置。重新安装它(从而重建本机扩展)解决了问题。
PSQL期权
-h主机名-主机=主机名
:指定运行服务器的计算机的主机名。如果该值以斜杠开头,它将用作UNIX域套接字的目录。
1 2 3 4 5 6 7 | $ grep"port\|unix_socket" /etc/postgresql/9.1/main/postgresql.conf port = 5433 # (CHANGE requires restart) unix_socket_directory = '/var/run/postgresql' # (CHANGE requires resta $ netstat -nalp | grep postgres unix 2 [ ACC ] STREAM LISTENING 106753 4349/postgres /tmp/.s.PGSQL.5432 unix 2 [ ACC ] STREAM LISTENING 10377 1031/postgres /var/run/postgresql/.s.PGSQL.5433 |
使用-host选项运行psql
1 | $ psql -p 5433 -h /var/run/postgresql |
不需要做软链接
This worked for me(as a mix of previous answers):
ZZU1
资料来源:HTTPS http://coderwall.com/p/zf-fww/postgres-on-osx-with-homebrew-not-running-after-osx-crash。
如果Postgres是使用自制安装的,则可以通过运行以下命令来解决此问题:
1 | brew link postgres |
最简单的方法就是
1 | brew reinstall postgresql |
这将使您的用户权限等保持不变,所有内容都将重置为新的。一直在工作!
fwiw今天发生在我身上,但当时我正在运行Ubuntu更新,这可能是在更新postgres。更新完成后,我可以毫无障碍地进行连接。
为了完整性起见,我试图从Rails控制台中检索数据库中的记录:
1 2 3 4 | development (main):0 > a = MyModel.find 73694 PG::ConnectionBad: 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没有运行。您应该在连接之前运行它。你可以使用postgres.app来实现这一点,只适用于Mac操作系统。(下载并安装此应用程序http://postgresapp.com)打开该应用程序,您就有了一个postgresql服务器,正在等待新的连接。关闭应用程序,服务器关闭。您还可以在http://www.postgresql.org/download/macosx/找到此信息。希望这对你有帮助。
在Macos Sierra上也遇到了这个问题,当我们按照上面的描述运行pg-ctl时,出现了以下错误
对于那些使用此命令但不工作或文件不在的人,并且正在使用Ruby on Rails
rm /usr/local/var/postgres/postmaster.pid
或者其他命令,继续失败。
我用BREW卸载解决了这个问题。我必须用BREW卸载两次,因为在第一次卸载时,将保留另一个版本的PostgreSQL,第二次卸载过程将完成。
用BREW安装PostgreSQL
然后删除、创建和迁移项目的数据库
(不要忘记启动PostgreSQL服务器)
?你最近换过PG吗?如果你只是为任何类型的
"Local"is for UNIX Domain Socket Connections only
本地所有密码
IPV4本地连接:
所有127.0.0.1/32密码
IPV6本地连接:
所有密码:1/128
有时候一个简单的错误会给我们一个头痛。如果我的英语一点都不好,我希望这个帮助和抱歉。
这是因为以前的服务器A仍在运行,请尝试关闭所有内容,然后重新运行应用程序。
我也有同样的问题因为我用了错误的邮件使用者代码。我将
所以当你面对这个问题时,你需要确保你使用正确的Postgres username,密码,Hostname和数据库…
希望这能帮助任何人
这是在后台服务器不运行的时候发生的。Steps to properly install postgres via homebrew on Mac:
法国电力公司
法国电力公司[在取得成功的第二步之后,它将迅速地走到第三步。]这命令手动启动服务器。]
我在尝试恢复/删除/创建一个数据库,而其他进程正在访问数据库时,遇到了这个问题。macosx/homebrew修复程序是:
对我来说,是Apache升级导致了这个问题。我仍然可以在控制台中运行psql或者直接从kdevelop调用db。此外,它还可以将"host=localhost"添加到连接字符串中。
但真正的问题是,Apache已经改为私有TMP。
解决方案:更新/usr/lib/systemd/system/apache2.service并将privatetmp=true更改为privatetmp=false。
我正在开发OpenSuSE操作系统,但我想Mac上也可能会发生类似的事情。
在经历了大量的往返之后,它真的落到了我使用的
我也犯了同样的错误。事实证明,Postgres根本就没有运行(它通常都是在后台运行的,但不管出于什么原因,它今天没有运行)。
如果是这样,只需在项目目录的命令行中键入
我也面临同样的问题。
你为我做了什么?
远程硕士学位
后餐厅
数据目录包含一个老的postmaster.pid file/the data directory contains an unreadable postmaster.pid filePostgresql puts a file named postmaster.pid in the data directory to store the process id of the postgresql server process.如果事后崩溃,这个文件可能含有一个老的错误您可以通过删除后主文件来确定这个问题。但是,你必须确保,后台的运行实际上不是运行。开放活动监测器并确保没有被称为"Postgres"或"Postmaster"的过程。
如果你删除后硕士学位的话,在后硕士学位运行的时候,错误的事情就会发生。
资料来源:HTTPS://postgresapp.com/documentation/troubleshooting.html
安装后只需两个步骤即可运行数据库(在此之前,请确保您以
Installed-Dirs/bin/postmaster -D Installed-Dirs/pgsql/data
举个例子:
1 | [postgres@localhost bin]$ /usr/LOCAL/pgsql/bin/postmaster -D /usr/LOCAL/pgsql/DATA |
步骤2:从已安装的路径运行psql(检查您安装的位置哪个Postgres将用于查找安装位置)
1 | [postgres@localhost bin]$ psql |
我使用比特那米堆栈并安装为非根用户PSQL。在使用PSQL的过程中,我发现了错误。
转身,有两个版本的PSQL
你可能想改变PSQL的别名,所以它的点对不根用户。
1 | alias psql='/bitnami/postgresql/postgresql/bin/psql' |
以前为我做的工作
如果在升级后(或升级后)遇到问题,请遵循此处提到的步骤,以便在版本之间安全地传输数据,以便解决问题:
使用Homebrew(MACOS)将Postgresql 9.6.5升级到10.0
原因
Lion附带了一个已经安装的Postgres版本,默认情况下使用这些二进制文件。一般来说,您可以通过使用Homebrew Postgres二进制文件的完整路径来解决这个问题,但其他程序可能仍然存在问题。
解决方案
1 | curl http://nextmarvel.net/blog/downloads/fixBrewLionPostgres.sh | sh |
通孔
http://nextmarvel.net/blog/2011/09/brew-install-postgresql-on-os-x-lion/
其中一个原因会让磁盘的尺寸不全执行后硕士学位路径