[英]Can't connect to local MySQL server through socket. I want to connect to REMOTE db
這是我的代碼。 我想連接到遠程數據庫
require 'bundler/setup'
#require "mysql"
#require 'mysql2'
#require "active_record"
Bundler.require
@db_host = ENV["HOST"]
@db_user = ENV["USER"]
@db_pass = ENV['PASSWORD']
@db_name = "db_name"
require "active_record"
ActiveRecord::Base.establish_connection(
:adapter => 'mysql2',
:database => @db_name,
:username => @db_user,
:password => @db_pass,
:host => @db_host)
class ConversionRate < ActiveRecord::Base
end
class ConversionRateMonthly < ActiveRecord::Base
self.table_name = "conversion_rates_monthly"
end
class KdpReport < ActiveRecord::Base
end
class SalesCalculator
def run
p KdpReport.count
end
end
calculator = SalesCalculator.new
calculator.run
但是我得到這個錯誤:
/home/jonsdirewolf/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/mysql2-0.4.9/lib/mysql2/client.rb:89:in`connect':不能通過套接字'/var/run/mysqld/mysqld.sock'(2)連接到本地MySQL服務器(Mysql2 :: Error)
很奇怪,但是昨天我的代碼起作用了。 有什么問題嗎? 我想連接到遠程數據庫,而不是本地數據庫。 順便說一句,我使用沒有護欄的紅寶石。
因此,問題出在空環境var ENV["HOST"]
。
主機時,傳遞給ActiveRecord
字符串為nil
或等於字符串localhost
-AR將嘗試使用套接字連接到db。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.