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