mysql - 使用 Ruby 但不使用 Rails 连接到 mysql

标签 mysql ruby

我正在使用我的旧脚本,它曾经工作得很好,但现在我收到以下错误:

Error while connecting to the database.
Can't connect to MySQL server on 'some.remote.host.com' (65)

我不知道真正的错误是什么,我的连接数据肯定是正确的,因为我可以使用给定的用户名和密码登录到 PhPMyadmin。

这是我的代码:

# encoding: UTF-8

require 'mysql2'
require 'csv'

def initialize_data
  puts "Initializing database, username, password and host..."
  @database = "database_name"
  @username = "database_user"
  @password = "my_secret_password"
  @host = "remote.host.com"
end

def connect
  puts "Trying to connect to the database."
  begin 
    @client = Mysql2::Client.new(host: @host, username: @username, password: @password, database: @database)
  rescue => e
    puts "Error while connecting to the database."
    puts e.message
  end
end

我找不到有关此 65 错误的任何信息。使用 e.message 进行救援根本无济于事。

至少有人能指出我挖掘的方向吗?我现在连续第二天都在为这个简单的脚本而苦苦挣扎。有没有办法接收更详细的错误信息?就像 Rails 的 error.full_messages.each

最佳答案

可以通过perror查看MySQL错误码:

$ perror 65
OS error code  65:  No route to host

这可能意味着 MySQL 服务器位于您当前无法访问的网络上。如果是这样,您还没有达到用户名和密码很重要的地步。测试问题是出在您的代码上还是出在访问数据库上的一种简单方法是使用 command-line tool .如果您无法从运行 Ruby 的命令行访问数据库,则问题不在于您的代码。

另一个测试是在本地运行 MySQL。 (或者如果可能的话,在与 MySQL 数据库相同的机器上运行您的脚本。)如果脚本按预期工作,请检查网络或数据库配置最近是否有更改。

关于mysql - 使用 Ruby 但不使用 Rails 连接到 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44682188/

相关文章:

ruby-on-rails - 通过其子类覆盖父类变量

ruby-on-rails - Rails 路径在更新时显示 .id not/id

php - 如何定位 mysqli 查询返回的特定行

mysql - 在 DB 表中返回每个 'post_type' 最多 5 个

mysql - docker 运行 mysql 的最佳方式

mysql - ssh 连接吐出 sql 客户端连接日志记录,我该如何阻止它?

ruby - `-' :String 的未定义方法 "100"

css - 如何让 HTTPS 域拉入 CSS 数据?

ruby - 在 linux 上读取原始鼠标数据

php - 从数据库php mysql搜索日期范围