无法使用gem“pg”从我的Ruby脚本连接到Postgres(pg)数据库(这不是rails,只是纯粹的ruby)

我为我的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);"); 

我从这个链接得到了这个

当我运行此脚本时,我收到以下错误:

  /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" 

不知道下一步该怎么做。 任何帮助将不胜感激,谢谢。

你确定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) 

我使用活动记录gem来使连接工作,这很好

连接设置适合我。

但该代码应该是这样的

@ conn.exec(“CREATE TABLE程序(id serial NOT NULL,name character(255))”)

Interesting Posts