我正在使用我的旧脚本,它曾经工作得很好,但现在我收到以下错误:
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/