Подключение к mysql с помощью Sequel на Openshift

Я разрабатываю сайт, используя 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}')

Все, что я получаю, это внутренняя ошибка сервера

Может ли кто-нибудь дать мне несколько советов о том, как я могу подключиться?

Спасибо


person ian    schedule 04.07.2015    source источник


Ответы (2)


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

Как подключиться к БД с помощью Sequel

  1. Порт и хост разделены через «/», но должны быть «:» (двоеточие)
  2. Вы забыли имя базы данных.

Пример правильной строки подключения:

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}')
person dimon222    schedule 06.07.2015

Спасибо, я пробовал все виды перестановок, но в конце концов это сработало

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)
person ian    schedule 06.07.2015