Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Added options to specify an SSL connection for MySQL. Define the foll…

…owing attributes in the connection config (config/database.yml in Rails) to use it: sslkey, sslcert, sslca, sslcapath, sslcipher. To use SSL with no client certs, just set :sslca = /dev/null. http://dev.mysql.com/doc/mysql/en/secure-connections.html #604 [daniel@nightrunner.com]

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@720 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information...
commit ba309a3e38297dfb79fa574555a1b8a003b04d1a 1 parent 101968f
@dhh dhh authored
View
2  activerecord/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*
+* Added options to specify an SSL connection for MySQL. Define the following attributes in the connection config (config/database.yml in Rails) to use it: sslkey, sslcert, sslca, sslcapath, sslcipher. To use SSL with no client certs, just set :sslca = '/dev/null'. http://dev.mysql.com/doc/mysql/en/secure-connections.html #604 [daniel@nightrunner.com]
+
* Added automatic dropping/creating of test tables for running the unit tests on all databases #587 [adelle@bullet.net.au]
* Fixed that find_by_* would fail when column names had numbers #670 [demetrius]
View
10 activerecord/lib/active_record/connection_adapters/mysql_adapter.rb
@@ -3,7 +3,7 @@
module ActiveRecord
class Base
- # Establishes a connection to the database that's used by all Active Record objects
+ # Establishes a connection to the database that's used by all Active Record objects.
def self.mysql_connection(config) # :nodoc:
unless self.class.const_defined?(:Mysql)
begin
@@ -19,7 +19,9 @@ def self.mysql_connection(config) # :nodoc:
end
end
end
+
symbolize_strings_in_hash(config)
+
host = config[:host]
port = config[:port]
socket = config[:socket]
@@ -32,9 +34,9 @@ def self.mysql_connection(config) # :nodoc:
raise ArgumentError, "No database specified. Missing argument: database."
end
- ConnectionAdapters::MysqlAdapter.new(
- Mysql::real_connect(host, username, password, database, port, socket), logger
- )
+ mysql = Mysql.init
+ mysql.ssl_set(config[:sslkey], config[:sslcert], config[:sslca], config[:sslcapath], config[:sslcipher]) if config[:sslkey]
+ ConnectionAdapters::MysqlAdapter.new(mysql.real_connect(host, username, password, database, port, socket), logger)
end
end
Please sign in to comment.
Something went wrong with that request. Please try again.