当试图通过执行”rails db:create”命令在PostgreSQL中创建数据库时,出现了”连接到套接字”/tmp/.s.PGSQL.5432″的服务器失败:没有这样的文件或目录”的错误消息

請問有什麼問題?

当使用postgresql在rails应用中尝试创建数据库时,出现了connection to server on socket “/tmp/.s.PGSQL.5432” failed: No such file or directory的错误。

情况

用brew install安装最新版本的PostgreSQL。

导致的原因有很多。

你可以尝试使用以下命令查看日志。

postgres -D /usr/local/var/postgres

然后,

% postgres -D /usr/local/var/postgres        
2021-11-24 02:00:01.120 JST [36758] FATAL:  database files are incompatible with server
2021-11-24 02:00:01.120 JST [36758] DETAIL:  The data directory was initialized by PostgreSQL version 13, which is not compatible with this version 14.1.

输出错误消息表示没有互换性。

换言之,它告诉我,尽管我安装了14.1版本的PostgreSQL,但我的Mac电脑上安装的数据目录版本是13,因此它们不兼容。

解决方案 (jiě jué cè)

先删除数据目录,然后重新安装posgre。

首先删除数据目录。

rm -rf /usr/local/Cellar/postgresql/14.1

根据情况,可能更好加上sudo命令。

卸载通过homebrew安装的postgresql。

brew uninstall --force postgresql

从现在开始,安装吧!!!

brew install postgresql

我们也重新创建数据目录吧。

initdb /usr/local/var/postgresql

请确认是否已经安装。

% psql --version
psql (PostgreSQL) 14.1

启动PostgreSQL。

brew services start postgresql

执行 `rails db:create` 命令。

% rails db:create
Created database 'XXX_development'
Created database 'XXX_test'

没有问题,已经成功创建了DB。

广告
将在 10 秒后关闭
bannerAds