在Openshift上使用Sequel连接到mysql

时间:2015-07-04 19:29:44

标签: mysql ruby openshift sequel

我正在使用Cloud9与Ruby和Sinatra开发一个站点,我正在部署到Openshift。我已经为mySQL和PhpMyAdmin设置了磁带。我遇到的问题是使用Sequel连接到数据库。

这就是我所拥有的

DBS = Sequel.connect('mysql://OPENSHIFT_MYSQL_DB_USERNAME:OPENSHIFT_MYSQL_DB_PASSWORD@OPENSHIFT_MYSQL_DB_HOST:OPENSHIFT_MYSQL_DB_PORT')
heros = DBS[:superheros]
get '/mysql' do
  "#{heros.first[:name]}"
  #"mysql"
end

我也试过

db_user = ENV['OPENSHIFT_MYSQL_DB_USERNAME']
db_pass = ENV['OPENSHIFT_MYSQL_DB_PASSWORD']
db_host = ENV['OPENSHIFT_MYSQL_DB_HOST']
db_port = ENV['OPENSHIFT_MYSQL_DB_PORT']
DBS = Sequel.connect('mysql://#{db_user}:#{db_pass}@#{db_host}/#{db_port}')

所有我回来的都是内部服务器错误

任何人都可以向我提供一些关于如何连接的提示吗?

由于

2 个答案:

答案 0 :(得分:0)

DBS = Sequel.connect('mysql://#{db_user}:#{db_pass}@#{db_host}/#{db_port}')  

How to connect to DB with Sequel

  1. 端口和主机通过" /"分隔,但应该是":" (结肠)
  2. 您忘记了数据库名称。
  3. 正确连接字符串的示例:

    mysql://user:password@host:port/database
    

    尝试类似的东西

    db_user = ENV['OPENSHIFT_MYSQL_DB_USERNAME']  
    db_pass = ENV['OPENSHIFT_MYSQL_DB_PASSWORD']  
    db_host = ENV['OPENSHIFT_MYSQL_DB_HOST']  
    db_port = ENV['OPENSHIFT_MYSQL_DB_PORT']  
    db_name = ENV['OPENSHIFT_APP_NAME']  
    DBS = Sequel.connect('mysql://#{db_user}:#{db_pass}@#{db_host}:#{db_port}/#{db_name}')
    

答案 1 :(得分:0)

谢谢,我尝试了各种排列,但最终还是有效了

db_user = ENV['OPENSHIFT_MYSQL_DB_USERNAME']
db_pass = ENV['OPENSHIFT_MYSQL_DB_PASSWORD']
db_host = ENV['OPENSHIFT_MYSQL_DB_HOST']
db_port = ENV['OPENSHIFT_MYSQL_DB_PORT']
DBS = Sequel.connect(:adapter=>'mysql', :host=>db_host, :database=>"prescreen", :user=>db_user, :password=>db_pass)