我正在尝试在Windows 10上设置rails环境开发。
我遵循'go_rails'(https://gorails.com/setup/windows/10)
的教程大多数安装似乎工作正常(当我在bash中输入rby -v或rails -v时它会返回预期的结果)。
我的问题是使用postresql,它用于我正在处理它的项目。
按照本教程的说明,我直接在Windows上安装Postgresql(10)。它似乎工作,因为可以在Windows上使用pgadmin登录或在bash中键入“psql -p 5432 -h localhost -U postgres”。
所以它看起来像postgresql正在工作,但是当我做一个rake db:在bash中创建时,我收到一个错误:无法连接到服务器:没有这样的文件或目录。服务器是否在本地运行并接受Unix域套接字'/var/run/postgresql/.s.PGSQL.5432'上的连接
在postgresql.conf(C:/ Programms /.../ Data / postgresql.conf)中,listen_addresses设置为'*'。
有一行名为'#unix_socket_directoris ='''之后,你应该在那里设置一些东西吗?
我真的需要让这个项目有效。
感谢您的帮助
答案 0 :(得分:3)
问题可能是您已经为PostgreSQL安装了Windows二进制文件,但是您尝试使用不存在的Unix套接字从Windows Subsystem for Linux连接到它。
您需要使用TCP / IP连接而不是Unix套接字。在命令行上键入psql
时,添加选项--host=127.0.0.1
以通过TCP / IP进行连接。
答案 1 :(得分:1)
我刚刚完成了整个Go Rails教程,我也遇到了rake db:create步骤的麻烦。您需要做的就是将host:127.0.0.1添加到您的database.yml,如下所示。在运行rake db:create。
之前,请确保启动PostgreSQLdefault: &default
host: 127.0.0.1
adapter: postgresql
encoding: unicode
username: postgres
password: ENV['POSTGRESQL_PASSWORD']
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
development:
<<: *default
database: app_development
test:
<<: *default
database: app_test
production:
<<: *default
database: app_production
username: app_username
password: <%= ENV['APP_DATABASE_PASSWORD'] %>
答案 2 :(得分:0)
在database.yml中将host: localhost
添加到您的default:
中。如果没有告诉主机在哪里寻找主机的信息,它将在linux中寻找进程,因为Windows进程没有暴露于wsl层,所以这当然是行不通的。