2010-12-07 4 views
0

Je n'arrive pas à faire tourner jdbcmysql sur ssl.jruby jdbcmysql adaptateur ne fonctionne pas avec ssl?

gemmes Téléchargé:

jdbc-mysql (5.0.4)

JRuby-OpenSSL (0.7.1)

Utilisation d'une console de rails normale (non JRuby), je l'ai eu à courir avec (aseptisé ci-dessous):

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

mais la même commande jette ce droit après que j'appelle cp.connection:

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

dans la console jruby. C'est probablement parce que ssl n'est pas utilisé parce que j'ai défini l'utilisateur pour exiger ssl.

Est-ce que jdbc-mysql ne supporte pas ssl? Je suis assez sûr que l'adaptateur jdbc fait.

+0

Dois-je peut-être exécuter une commande pour que le serveur reconnaisse le ca-cert, au lieu de le passer comme: sslca => "ca-cert.pem" – Andy

Répondre

0

Qu'est-il arrivé ici est que le client MySQL est la version 5.0 alors que le serveur était de 5,1

La syntaxe est exactement la même, l'accès sans travaux ssl, mais avec ssl échoue silencieusement :(

0

J'ai trouvé que avec jruby/odbc et ssl, vous devez utiliser l'odbc url param pour configurer votre connexion Les documents sont rares, mais je crois que la gem MRI utilisera ssl (si disponible) par défaut, mais les adaptateurs ODBC, don ' Il ne semble pas y avoir une clef que vous pouvez mettre dans votre yml/establish_connection pour activer ssl sur odbc

Cela devrait fonctionner à cette situation: ssl = true

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

Je ne sais pas si la clé de sslCA se traduit directement comme ça, ou comment il calculerait les chemins.

heroku/postgresql recommande d'ajouter: SSLfactory = org.postgresql.ssl.NonValidatingFactory

Testé uniquement avec postgresql, mais je suis confiant mysql et la plupart de tous les adaptateurs odbc également travailler comme ça.

Questions connexes