当试图通过执行”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。