我为我的Mac OSX机器下载了postgres.app。我有一个rails应用程序已连接并使用postgres应用程序附带的postgres数据库。
现在我正在编写一个纯Ruby测试脚本(Not Rails,纯Ruby,甚至不是Active Record)来尝试连接到postgres数据库实例。这些是我设置它的步骤
1) ran this command on the terminal:
gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
2) Added this code to the test script:
#!/usr/bin/env ruby
#encoding: utf-8
require "pg"
@conn = PG.connect(
:dbname => 'oData',
:user => 'am',
:password => '')
@conn.exec("CREATE TABLE programs (id serial NOT NULL, name character varying(255);");
我从这个link
得到了这个当我运行此脚本时,出现以下错误:
/Users/am/.rvm/gems/ruby-2.0.0-p247/gems/pg-0.16.0/lib/pg.rb:38:in `initialize': could
not connect to server: No such file or directory (PG::ConnectionBad)
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
我的调试工作:
My postgres.app is up and running.
I looked at the pg gem [documentation][2] and my syntax seemed OK.
The location of my postgres DB is entered in my bash script like so
PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH"
不确定下一步该怎么做。任何帮助将不胜感激,谢谢。
答案 0 :(得分:0)
你确定postgres正在监听套接字吗?你确定用户名和密码是对的吗?
我倾向于尝试像
这样的东西require 'pg'
puts PG::Connection.ping(:dbname => 'oData',:user => 'am',:password => '')
puts "trying with tcp"
puts PG::Connection.ping(:dbname => 'oData',:user => 'am',:password => '', :port => 5432)
答案 1 :(得分:0)
我使用活动记录gem来使连接正常工作,这很好
答案 2 :(得分:0)
连接设置适合我。
但该代码应该看起来像
@ conn.exec(“CREATE TABLE程序(id serial NOT NULL,name 字符(255))“)