The MySQL adapter will work with both Ruby/MySQL, which is a Ruby-based MySQL adapter that comes bundled with Active Record, and with the faster C-based MySQL/Ruby adapter (available both as a gem and from www.tmtm.org/en/mysql/ruby/).
Options:
-
:host
-- Defaults to localhost -
:port
-- Defaults to 3306 -
:socket
-- Defaults to /tmp/mysql.sock -
:username
-- Defaults to root -
:password
-- Defaults to nothing -
:database
-- The name of the database. No default, must be provided. -
:sslkey
-- Necessary to use MySQL with an SSL connection -
:sslcert
-- Necessary to use MySQL with an SSL connection -
:sslcapath
-- Necessary to use MySQL with an SSL connection -
:sslcipher
-- Necessary to use MySQL with an SSL connection
By default, the MysqlAdapter will consider all columns of type tinyint(1) as boolean. If you wish to disable this emulation (which was the default behavior in versions 0.13.1 and earlier) you can add the following line to your environment.rb file:
ActiveRecord::ConnectionAdapters::MysqlAdapter.emulate_booleans = false
- A
- C
- D
- N
- Q
- R
LOST_CONNECTION_ERROR_MESSAGES | = | [ "Server shutdown in progress", "Broken pipe", "Lost connection to MySQL server during query", "MySQL server has gone away" ] |
Source: show
# File rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb, line 148 def initialize(connection, logger, connection_options, config) super(connection, logger) @connection_options, @config = connection_options, config connect end
CONNECTION MANAGEMENT ====================================
Source: show
# File rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb, line 213 def active? if @connection.respond_to?(:stat) @connection.stat else @connection.query 'select 1' end # mysql-ruby doesn't raise an exception when stat fails. if @connection.respond_to?(:errno) @connection.errno.zero? else true end rescue Mysql::Error false end
Source: show
# File rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb, line 320 def current_database select_one("SELECT DATABASE() as db")["db"] end
Source: show
# File rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb, line 235 def disconnect! @connection.close rescue nil end
QUOTING ==================================================
Source: show
# File rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb, line 183 def quote(value, column = nil) if value.kind_of?(String) && column && column.type == :binary && column.class.respond_to?(:string_to_binary) s = column.class.string_to_binary(value).unpack("H*")[0] "x'#{s}'" elsif value.kind_of?(BigDecimal) "'#{value.to_s("F")}'" else super end end
Source: show
# File rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb, line 206 def quoted_false "0" end
Source: show
# File rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb, line 202 def quoted_true "1" end
Source: show
# File rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb, line 230 def reconnect! disconnect! connect end
Source: show
# File rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb, line 356 def rename_table(name, new_name) execute "RENAME TABLE #{name} TO #{new_name}" end