Class: ActiveRecord::ConnectionAdapters::MysqlAdapter

Class | ActiveRecord::ConnectionAdapters::MysqlAdapter
In: | lib/active_record/connection_adapters/mysql_adapter.rb
Parent: | AbstractAdapter

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.
- `: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.

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

### Methods

active? case_sensitive_equality_operator change_column_null charset collation create_database current_database disconnect! drop_table limited_update_conditions new quote quoted_false quoted_true reconnect! rename_table reset! select_rows show_variable type_to_sql

### Constants

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" ]
QUOTED_FALSE | = | '1'.freeze, '0'.freeze
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 }

### Public Class methods

new(connection, logger, connection_options, config)

### Public Instance methods

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

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!()
rename_table(table_name, new_name)
reset!()
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.

[Validate]