Class

ActiveRecord::ConnectionAdapters::MysqlAdapter

Inheritance
< ActiveRecord::ConnectionAdapters::AbstractAdapter < Object

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.
  • :encoding - (Optional) Sets the client encoding by executing "SET NAMES <encoding>" after connection.
  • :reconnect - Defaults to false (See MySQL documentation: dev.mysql.com/doc/refman/5.0/en/auto-reconnect.html).
  • :sslca - Necessary to use MySQL with an SSL connection.
  • :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.

Constants

Name   Description
ADAPTER_NAME = 'MySQL'.freeze
LOST_CONNECTION_ERROR_MESSAGES = [ "Server shutdown in progress", "Broken pipe", "Lost connection to MySQL server during query", "MySQL server has gone away" ]
NATIVE_DATABASE_TYPES = { :primary_key => "int(11) DEFAULT NULL auto_increment PRIMARY KEY".freeze, :string => { :name => "varchar", :limit => 255 }, :text => { :name => "text" }, :integer => { :name => "int", :limit => 4 }, :float => { :name => "float" }, :decimal => { :name => "decimal" }, :datetime => { :name => "datetime" }, :timestamp => { :name => "datetime" }, :time => { :name => "time" }, :date => { :name => "date" }, :binary => { :name => "blob" }, :boolean => { :name => "tinyint", :limit => 1 }
QUOTED_FALSE = '1'.freeze, '0'.freeze

Methods

Class

Visibility Signature
public new (connection, logger, connection_options, config)

Instance

Visibility Signature
public active? ()
public case_sensitive_equality_operator ()
public change_column_null (table_name, column_name, null, default = nil)
public charset ()
public collation ()
public create_database (name, options = {})
public create_savepoint ()
public current_database ()
public disconnect! ()
public drop_table (table_name, options = {})
public limited_update_conditions (where_sql, quoted_table_name, quoted_primary_key)
public quote (value, column = nil)
public quoted_false ()
public quoted_true ()
public reconnect! ()
public release_savepoint ()
public rename_table (table_name, new_name)
public reset! ()
public rollback_to_savepoint ()
public select_rows (sql, name = nil)
public show_variable (name)
public type_to_sql (type, limit = nil, precision = nil, scale = nil)

Class Method Detail

new(connection, logger, connection_options, config)

Instance Method Detail

active?()

CONNECTION MANAGEMENT ====================================

case_sensitive_equality_operator()

change_column_null(table_name, column_name, null, default = nil)

charset()

Returns the database character set.

collation()

Returns the database collation strategy.

create_database(name, options = {})

Create a new MySQL database with optional :charset and :collation. Charset defaults to utf8.

Example:

  create_database 'charset_test', :charset => 'latin1', :collation => 'latin1_bin'
  create_database 'matt_development'
  create_database 'matt_development', :charset => :big5

create_savepoint()

current_database()

disconnect!()

drop_table(table_name, options = {})

limited_update_conditions(where_sql, quoted_table_name, quoted_primary_key)

quote(value, column = nil)

QUOTING ==================================================

quoted_false()

quoted_true()

reconnect!()

release_savepoint()

rename_table(table_name, new_name)

reset!()

rollback_to_savepoint()

select_rows(sql, name = nil)

DATABASE STATEMENTS ======================================

show_variable(name)

SHOW VARIABLES LIKE ‘name‘

type_to_sql(type, limit = nil, precision = nil, scale = nil)

Maps logical Rails types to MySQL-specific data types.