ruby&postgres Ruby 连接到 macOS 环境中的数据库错误

Posted

技术标签:

【中文标题】ruby&postgres Ruby 连接到 macOS 环境中的数据库错误【英文标题】:ruby&postgres Ruby connects to database error in macOS environment 【发布时间】:2022-01-22 13:42:33 【问题描述】:

这是我的数据库.rb

#!/usr/bin/ruby
require 'postgres'

conn = PGconn.connect("localhost", 5432, '', '', "postgres", "postgres", "postgre")

res  = conn.exec('select tablename, tableowner from pg_tables')

res.each do |row|
    row.each do |column|
        print column
        (20-column.length).timesprint " "
    end
    puts
end

可执行文件: ruby 数据库.rb

Traceback (most recent call last):
  11: from database.rb:4:in `<main>'
  10: from database.rb:4:in `new'
   9: from /Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/postgres-compat.rb:28:in `initialize'
   8: from /Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/postgres-compat.rb:28:in `new'
   7: from /Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/connection.rb:58:in `initialize'
   6: from /Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/connection.rb:58:in `loop'
   5: from /Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/connection.rb:59:in `block in initialize'
   4: from /Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/message.rb:58:in `read'
   3: from /Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/message.rb:116:in `create'
   2: from /Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/message.rb:137:in `parse'
   1: from /Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/message.rb:82:in `parse'
/Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/message.rb:139:in `block in parse': undefined method `auth_type' for #<PostgresPR::UnknownAuthType:0x0000000133830f98> (NoMethodError)

接下来我该怎么做?

【问题讨论】:

【参考方案1】:

我认为 PGconn 不支持 ''(空字符串)作为选项和 tty 值。

您是否尝试过将它们设置为 nil:

PGconn.connect("localhost", 5432, nil, nil, "postgres", "postgres", "postgre")

【讨论】:

以上是关于ruby&postgres Ruby 连接到 macOS 环境中的数据库错误的主要内容,如果未能解决你的问题,请参考以下文章

你好 postgres 数据库连接错误 Ruby on rails

Ruby On Rails Heroku Postgres数据库SSL连接

ruby postgres.rake

fe_sendauth:Ruby没有提供密码(PG :: ConnectionBad),但在Rails中没问题

ruby pg_trgm gin postgre

ruby sequel 和 postgreSQL - 客户端太多(连接)