jruby jdbcmysql адаптер не работает с ssl? - PullRequest
0 голосов
/ 08 декабря 2010

Я не могу заставить jdbcmysql работать поверх ssl.

Загруженные гемы:

jdbc-mysql (5.0.4)

jruby-openssl (0.7.1)

Используя обычную консоль rails (не jruby), я запустил ее с (sanitized ниже):

cp = ActiveRecord::Base.establish_connection(
  :adapter => 'jdbcmysql',
  :host => 'host',
  :username => 'user',
  :password => 'pw',
  :database => 'db',
  :sslca => "ca-cert.pem"
)

, но эта же команда выдает это сразу после того, как я вызываю cp.connection:

RuntimeError: The driver encountered an unknown error: java.sql.SQLException: Access denied for user 'user'@'host' (using password: YES)

в консоли jruby.Вероятно, это связано с тем, что ssl не используется, поскольку я установил для пользователя требование ssl.

Разве jdbc-mysql просто не поддерживает ssl?Я уверен, что адаптер jdbc работает.

Ответы [ 2 ]

0 голосов
/ 28 ноября 2012

Я обнаружил, что с jruby / odbc и ssl, вы ДОЛЖНЫ использовать параметр odbc url для настройки вашего соединения .Документов мало, но я считаю, что гем MRI по умолчанию будет использовать ssl (если есть), а адаптеры odbc - нет.Похоже, что нет ключа, который вы можете вставить в yml / Estab_connection, чтобы включить ssl в odbc.

Это должно работать в этой ситуации: ssl = true

cp = ActiveRecord::Base.establish_connection(
  :url => 'jdbc:mysql://host/db?user=user&password=pw&ssl=true&sslca=ca-cert.pem'
)

Я не уверен, что ключ sslca переводится напрямую или как он рассчитывает пути.

heroku / postgresql рекомендует добавить: sslfactory = org.postgresql.ssl.NonValidatingFactory

Протестировано только с postgresql, но я уверен, что mysql и большинство всех адаптеров odbc также будут работать так.

0 голосов
/ 27 апреля 2011

То, что произошло здесь, было то, что клиент MySQL был версии 5.0, а сервер был 5.1

Синтаксис точно такой же, доступ без ssl работает, но с ssl молча завершается неудачей: (* ​​1003 *

...