簡體   English   中英

無法通過套接字連接到本地MySQL服務器。 我想連接到遠程數據庫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM