Pencarian

Rss Posts

 

 

 

Ultimate MySQL variable and status reference list

Jan 08, 2011

I am constantly referring to the amazing MySQL manual, especially the option and variable reference table. But just as frequently, I want to look up blog posts on variables, or look for content in the Percona documentation or forums. So I present to you what is now my newest Firefox toolbar bookmark: an option and variable reference for all three sites in one!

abort_slave_event_count
blog
percona.com
manual

Aborted_clients
blog
percona.com
manual

Aborted_connects
blog
percona.com
manual

allow_suspicious_udfs
blog
percona.com
manual

ansi
blog
percona.com
manual

auto_increment_increment
blog
percona.com
manual

auto_increment_offset
blog
percona.com
manual

autocommit
blog
percona.com
manual

automatic_sp_privileges
blog
percona.com
manual

back_log
blog
percona.com
manual

basedir
blog
percona.com
manual

big_tables
blog
percona.com
manual

bind_address
blog
percona.com
manual

Binlog_cache_disk_use
blog
percona.com
manual

binlog_cache_size
blog
percona.com
manual

Binlog_cache_use
blog
percona.com
manual

binlog_direct_non_transactional_updates
blog
percona.com
manual

binlog_do_db
blog
percona.com
manual

binlog_format
blog
percona.com
manual

binlog_ignore_db
blog
percona.com
manual

binlog_row_event_max_size
blog
percona.com
manual

Binlog_stmt_cache_disk_use
blog
percona.com
manual

binlog_stmt_cache_size
blog
percona.com
manual

Binlog_stmt_cache_use
blog
percona.com
manual

bootstrap
blog
percona.com
manual

bulk_insert_buffer_size
blog
percona.com
manual

Bytes_received
blog
percona.com
manual

Bytes_sent
blog
percona.com
manual

character_set_client
blog
percona.com
manual

character_set_client_handshake
blog
percona.com
manual

character_set_connection
blog
percona.com
manual

character_set_database
blog
percona.com
manual

character_set_filesystem
blog
percona.com
manual

character_set_results
blog
percona.com
manual

character_set_server
blog
percona.com
manual

character_set_system
blog
percona.com
manual

character_sets_dir
blog
percona.com
manual

chroot
blog
percona.com
manual

collation_connection
blog
percona.com
manual

collation_database
blog
percona.com
manual

collation_server
blog
percona.com
manual

Com_admin_commands
blog
percona.com
manual

Com_alter_db
blog
percona.com
manual

Com_alter_db_upgrade
blog
percona.com
manual

Com_alter_event
blog
percona.com
manual

Com_alter_function
blog
percona.com
manual

Com_alter_procedure
blog
percona.com
manual

Com_alter_server
blog
percona.com
manual

Com_alter_table
blog
percona.com
manual

Com_alter_tablespace
blog
percona.com
manual

Com_analyze
blog
percona.com
manual

Com_assign_to_keycache
blog
percona.com
manual

Com_backup_table
blog
percona.com
manual

Com_begin
blog
percona.com
manual

Com_binlog
blog
percona.com
manual

Com_call_procedure
blog
percona.com
manual

Com_change_db
blog
percona.com
manual

Com_change_master
blog
percona.com
manual

Com_check
blog
percona.com
manual

Com_checksum
blog
percona.com
manual

Com_commit
blog
percona.com
manual

Com_create_db
blog
percona.com
manual

Com_create_event
blog
percona.com
manual

Com_create_function
blog
percona.com
manual

Com_create_index
blog
percona.com
manual

Com_create_procedure
blog
percona.com
manual

Com_create_server
blog
percona.com
manual

Com_create_table
blog
percona.com
manual

Com_create_trigger
blog
percona.com
manual

Com_create_udf
blog
percona.com
manual

Com_create_user
blog
percona.com
manual

Com_create_view
blog
percona.com
manual

Com_dealloc_sql
blog
percona.com
manual

Com_delete
blog
percona.com
manual

Com_delete_multi
blog
percona.com
manual

Com_do
blog
percona.com
manual

Com_drop_db
blog
percona.com
manual

Com_drop_event
blog
percona.com
manual

Com_drop_function
blog
percona.com
manual

Com_drop_index
blog
percona.com
manual

Com_drop_procedure
blog
percona.com
manual

Com_drop_server
blog
percona.com
manual

Com_drop_table
blog
percona.com
manual

Com_drop_trigger
blog
percona.com
manual

Com_drop_user
blog
percona.com
manual

Com_drop_view
blog
percona.com
manual

Com_empty_query
blog
percona.com
manual

Com_execute_sql
blog
percona.com
manual

Com_flush
blog
percona.com
manual

Com_grant
blog
percona.com
manual

Com_ha_close
blog
percona.com
manual

Com_ha_open
blog
percona.com
manual

Com_ha_read
blog
percona.com
manual

Com_help
blog
percona.com
manual

Com_insert
blog
percona.com
manual

Com_insert_select
blog
percona.com
manual

Com_install_plugin
blog
percona.com
manual

Com_kill
blog
percona.com
manual

Com_load
blog
percona.com
manual

Com_lock_tables
blog
percona.com
manual

Com_optimize
blog
percona.com
manual

Com_preload_keys
blog
percona.com
manual

Com_prepare_sql
blog
percona.com
manual

Com_purge
blog
percona.com
manual

Com_purge_before_date
blog
percona.com
manual

Com_release_savepoint
blog
percona.com
manual

Com_rename_table
blog
percona.com
manual

Com_rename_user
blog
percona.com
manual

Com_repair
blog
percona.com
manual

Com_replace
blog
percona.com
manual

Com_replace_select
blog
percona.com
manual

Com_reset
blog
percona.com
manual

Com_resignal
blog
percona.com
manual

Com_restore_table
blog
percona.com
manual

Com_revoke
blog
percona.com
manual

Com_revoke_all
blog
percona.com
manual

Com_rollback
blog
percona.com
manual

Com_rollback_to_savepoint
blog
percona.com
manual

Com_savepoint
blog
percona.com
manual

Com_select
blog
percona.com
manual

Com_set_option
blog
percona.com
manual

Com_show_authors
blog
percona.com
manual

Com_show_binlog_events
blog
percona.com
manual

Com_show_binlogs
blog
percona.com
manual

Com_show_charsets
blog
percona.com
manual

Com_show_collations
blog
percona.com
manual

Com_show_column_types
blog
percona.com
manual

Com_show_contributors
blog
percona.com
manual

Com_show_create_db
blog
percona.com
manual

Com_show_create_event
blog
percona.com
manual

Com_show_create_func
blog
percona.com
manual

Com_show_create_proc
blog
percona.com
manual

Com_show_create_table
blog
percona.com
manual

Com_show_create_trigger
blog
percona.com
manual

Com_show_databases
blog
percona.com
manual

Com_show_engine_logs
blog
percona.com
manual

Com_show_engine_mutex
blog
percona.com
manual

Com_show_engine_status
blog
percona.com
manual

Com_show_errors
blog
percona.com
manual

Com_show_events
blog
percona.com
manual

Com_show_fields
blog
percona.com
manual

Com_show_function_code
blog
percona.com
manual

Com_show_function_status
blog
percona.com
manual

Com_show_grants
blog
percona.com
manual

Com_show_innodb_status
blog
percona.com
manual

Com_show_keys
blog
percona.com
manual

Com_show_logs
blog
percona.com
manual

Com_show_master_status
blog
percona.com
manual

Com_show_new_master
blog
percona.com
manual

Com_show_open_tables
blog
percona.com
manual

Com_show_plugins
blog
percona.com
manual

Com_show_privileges
blog
percona.com
manual

Com_show_procedure_code
blog
percona.com
manual

Com_show_procedure_status
blog
percona.com
manual

Com_show_processlist
blog
percona.com
manual

Com_show_profile
blog
percona.com
manual

Com_show_profiles
blog
percona.com
manual

Com_show_relaylog_events
blog
percona.com
manual

Com_show_slave_hosts
blog
percona.com
manual

Com_show_slave_status
blog
percona.com
manual

Com_show_status
blog
percona.com
manual

Com_show_storage_engines
blog
percona.com
manual

Com_show_table_status
blog
percona.com
manual

Com_show_tables
blog
percona.com
manual

Com_show_triggers
blog
percona.com
manual

Com_show_variables
blog
percona.com
manual

Com_show_warnings
blog
percona.com
manual

Com_signal
blog
percona.com
manual

Com_slave_start
blog
percona.com
manual

Com_slave_stop
blog
percona.com
manual

Com_stmt_close
blog
percona.com
manual

Com_stmt_execute
blog
percona.com
manual

Com_stmt_fetch
blog
percona.com
manual

Com_stmt_prepare
blog
percona.com
manual

Com_stmt_reprepare
blog
percona.com
manual

Com_stmt_reset
blog
percona.com
manual

Com_stmt_send_long_data
blog
percona.com
manual

Com_truncate
blog
percona.com
manual

Com_uninstall_plugin
blog
percona.com
manual

Com_unlock_tables
blog
percona.com
manual

Com_update
blog
percona.com
manual

Com_update_multi
blog
percona.com
manual

Com_xa_commit
blog
percona.com
manual

Com_xa_end
blog
percona.com
manual

Com_xa_prepare
blog
percona.com
manual

Com_xa_recover
blog
percona.com
manual

Com_xa_rollback
blog
percona.com
manual

Com_xa_start
blog
percona.com
manual

completion_type
blog
percona.com
manual

Compression
blog
percona.com
manual

concurrent_insert
blog
percona.com
manual

connect_timeout
blog
percona.com
manual

Connections
blog
percona.com
manual

console
blog
percona.com
manual

core_file
blog
percona.com
manual

Created_tmp_disk_tables
blog
percona.com
manual

Created_tmp_files
blog
percona.com
manual

Created_tmp_tables
blog
percona.com
manual

datadir
blog
percona.com
manual

date_format
blog
percona.com
manual

datetime_format
blog
percona.com
manual

debug
blog
percona.com
manual

debug_sync
blog
percona.com
manual

debug_sync_timeout
blog
percona.com
manual

default_storage_engine
blog
percona.com
manual

default_time_zone
blog
percona.com
manual

default_week_format
blog
percona.com
manual

defaults_extra_file
blog
percona.com
manual

defaults_file
blog
percona.com
manual

defaults_group_suffix
blog
percona.com
manual

delay_key_write
blog
percona.com
manual

Delayed_errors
blog
percona.com
manual

delayed_insert_limit
blog
percona.com
manual

Delayed_insert_threads
blog
percona.com
manual

delayed_insert_timeout
blog
percona.com
manual

delayed_queue_size
blog
percona.com
manual

Delayed_writes
blog
percona.com
manual

des_key_file
blog
percona.com
manual

disconnect_slave_event_count
blog
percona.com
manual

div_precision_increment
blog
percona.com
manual

enable_locking
blog
percona.com
manual

enable_named_pipe
blog
percona.com
manual

enable_pstack
blog
percona.com
manual

engine_condition_pushdown
blog
percona.com
manual

error_count
blog
percona.com
manual

event_scheduler
blog
percona.com
manual

exit_info
blog
percona.com
manual

expire_logs_days
blog
percona.com
manual

external_locking
blog
percona.com
manual

external_user
blog
percona.com
manual

federated
blog
percona.com
manual

flush
blog
percona.com
manual

Flush_commands
blog
percona.com
manual

flush_time
blog
percona.com
manual

foreign_key_checks
blog
percona.com
manual

ft_boolean_syntax
blog
percona.com
manual

ft_max_word_len
blog
percona.com
manual

ft_min_word_len
blog
percona.com
manual

ft_query_expansion_limit
blog
percona.com
manual

ft_stopword_file
blog
percona.com
manual

gdb
blog
percona.com
manual

general_log
blog
percona.com
manual

general_log_file
blog
percona.com
manual

group_concat_max_len
blog
percona.com
manual

Handler_commit
blog
percona.com
manual

Handler_delete
blog
percona.com
manual

Handler_prepare
blog
percona.com
manual

Handler_read_first
blog
percona.com
manual

Handler_read_key
blog
percona.com
manual

Handler_read_last
blog
percona.com
manual

Handler_read_next
blog
percona.com
manual

Handler_read_prev
blog
percona.com
manual

Handler_read_rnd
blog
percona.com
manual

Handler_read_rnd_next
blog
percona.com
manual

Handler_rollback
blog
percona.com
manual

Handler_savepoint
blog
percona.com
manual

Handler_savepoint_rollback
blog
percona.com
manual

Handler_update
blog
percona.com
manual

Handler_write
blog
percona.com
manual

have_compress
blog
percona.com
manual

have_crypt
blog
percona.com
manual

have_csv
blog
percona.com
manual

have_dynamic_loading
blog
percona.com
manual

have_geometry
blog
percona.com
manual

have_innodb
blog
percona.com
manual

have_openssl
blog
percona.com
manual

have_partitioning
blog
percona.com
manual

have_profiling
blog
percona.com
manual

have_query_cache
blog
percona.com
manual

have_rtree_keys
blog
percona.com
manual

have_ssl
blog
percona.com
manual

have_symlink
blog
percona.com
manual

help
blog
percona.com
manual

hostname
blog
percona.com
manual

identity
blog
percona.com
manual

ignore_builtin_innodb
blog
percona.com
manual

init_connect
blog
percona.com
manual

init_file
blog
percona.com
manual

init_slave
blog
percona.com
manual

innodb
blog
percona.com
manual

innodb_adaptive_flushing
blog
percona.com
manual

innodb_adaptive_hash_index
blog
percona.com
manual

innodb_additional_mem_pool_size
blog
percona.com
manual

innodb_autoextend_increment
blog
percona.com
manual

innodb_autoinc_lock_mode
blog
percona.com
manual

innodb_buffer_pool_instances
blog
percona.com
manual

Innodb_buffer_pool_pages_data
blog
percona.com
manual

Innodb_buffer_pool_pages_dirty
blog
percona.com
manual

Innodb_buffer_pool_pages_flushed
blog
percona.com
manual

Innodb_buffer_pool_pages_free
blog
percona.com
manual

Innodb_buffer_pool_pages_latched
blog
percona.com
manual

Innodb_buffer_pool_pages_misc
blog
percona.com
manual

Innodb_buffer_pool_pages_total
blog
percona.com
manual

Innodb_buffer_pool_read_ahead
blog
percona.com
manual

Innodb_buffer_pool_read_ahead_evicted
blog
percona.com
manual

Innodb_buffer_pool_read_requests
blog
percona.com
manual

Innodb_buffer_pool_reads
blog
percona.com
manual

innodb_buffer_pool_size
blog
percona.com
manual

Innodb_buffer_pool_wait_free
blog
percona.com
manual

Innodb_buffer_pool_write_requests
blog
percona.com
manual

innodb_change_buffering
blog
percona.com
manual

innodb_checksums
blog
percona.com
manual

innodb_commit_concurrency
blog
percona.com
manual

innodb_concurrency_tickets
blog
percona.com
manual

innodb_data_file_path
blog
percona.com
manual

Innodb_data_fsyncs
blog
percona.com
manual

innodb_data_home_dir
blog
percona.com
manual

Innodb_data_pending_fsyncs
blog
percona.com
manual

Innodb_data_pending_reads
blog
percona.com
manual

Innodb_data_pending_writes
blog
percona.com
manual

Innodb_data_read
blog
percona.com
manual

Innodb_data_reads
blog
percona.com
manual

Innodb_data_writes
blog
percona.com
manual

Innodb_data_written
blog
percona.com
manual

Innodb_dblwr_pages_written
blog
percona.com
manual

Innodb_dblwr_writes
blog
percona.com
manual

innodb_doublewrite
blog
percona.com
manual

innodb_fast_shutdown
blog
percona.com
manual

innodb_file_format
blog
percona.com
manual

innodb_file_format_check
blog
percona.com
manual

innodb_file_format_max
blog
percona.com
manual

innodb_file_per_table
blog
percona.com
manual

innodb_flush_log_at_trx_commit
blog
percona.com
manual

innodb_flush_method
blog
percona.com
manual

innodb_force_recovery
blog
percona.com
manual

Innodb_have_atomic_builtins
blog
percona.com
manual

innodb_io_capacity
blog
percona.com
manual

innodb_lock_wait_timeout
blog
percona.com
manual

innodb_locks_unsafe_for_binlog
blog
percona.com
manual

innodb_log_buffer_size
blog
percona.com
manual

innodb_log_file_size
blog
percona.com
manual

innodb_log_files_in_group
blog
percona.com
manual

innodb_log_group_home_dir
blog
percona.com
manual

Innodb_log_waits
blog
percona.com
manual

Innodb_log_write_requests
blog
percona.com
manual

Innodb_log_writes
blog
percona.com
manual

innodb_max_dirty_pages_pct
blog
percona.com
manual

innodb_max_purge_lag
blog
percona.com
manual

innodb_mirrored_log_groups
blog
percona.com
manual

innodb_old_blocks_pct
blog
percona.com
manual

innodb_old_blocks_time
blog
percona.com
manual

innodb_open_files
blog
percona.com
manual

Innodb_os_log_fsyncs
blog
percona.com
manual

Innodb_os_log_pending_fsyncs
blog
percona.com
manual

Innodb_os_log_pending_writes
blog
percona.com
manual

Innodb_os_log_written
blog
percona.com
manual

Innodb_page_size
blog
percona.com
manual

Innodb_pages_created
blog
percona.com
manual

Innodb_pages_read
blog
percona.com
manual

Innodb_pages_written
blog
percona.com
manual

innodb_purge_batch_size
blog
percona.com
manual

innodb_purge_threads
blog
percona.com
manual

innodb_read_ahead_threshold
blog
percona.com
manual

innodb_read_io_threads
blog
percona.com
manual

innodb_replication_delay
blog
percona.com
manual

innodb_rollback_on_timeout
blog
percona.com
manual

Innodb_row_lock_current_waits
blog
percona.com
manual

Innodb_row_lock_time
blog
percona.com
manual

Innodb_row_lock_time_avg
blog
percona.com
manual

Innodb_row_lock_time_max
blog
percona.com
manual

Innodb_row_lock_waits
blog
percona.com
manual

Innodb_rows_deleted
blog
percona.com
manual

Innodb_rows_inserted
blog
percona.com
manual

Innodb_rows_read
blog
percona.com
manual

Innodb_rows_updated
blog
percona.com
manual

innodb_spin_wait_delay
blog
percona.com
manual

innodb_stats_on_metadata
blog
percona.com
manual

innodb_stats_sample_pages
blog
percona.com
manual

innodb_status_file
blog
percona.com
manual

innodb_strict_mode
blog
percona.com
manual

innodb_support_xa
blog
percona.com
manual

innodb_sync_spin_loops
blog
percona.com
manual

innodb_table_locks
blog
percona.com
manual

innodb_thread_concurrency
blog
percona.com
manual

innodb_thread_sleep_delay
blog
percona.com
manual

Innodb_truncated_status_writes
blog
percona.com
manual

innodb_use_native_aio
blog
percona.com
manual

innodb_use_sys_malloc
blog
percona.com
manual

innodb_version
blog
percona.com
manual

innodb_write_io_threads
blog
percona.com
manual

insert_id
blog
percona.com
manual

interactive_timeout
blog
percona.com
manual

join_buffer_size
blog
percona.com
manual

keep_files_on_create
blog
percona.com
manual

Key_blocks_not_flushed
blog
percona.com
manual

Key_blocks_unused
blog
percona.com
manual

Key_blocks_used
blog
percona.com
manual

key_buffer_size
blog
percona.com
manual

key_cache_age_threshold
blog
percona.com
manual

key_cache_block_size
blog
percona.com
manual

key_cache_division_limit
blog
percona.com
manual

Key_read_requests
blog
percona.com
manual

Key_reads
blog
percona.com
manual

Key_write_requests
blog
percona.com
manual

Key_writes
blog
percona.com
manual

language
blog
percona.com
manual

large_files_support
blog
percona.com
manual

large_page_size
blog
percona.com
manual

large_pages
blog
percona.com
manual

last_insert_id
blog
percona.com
manual

Last_query_cost
blog
percona.com
manual

lc_messages
blog
percona.com
manual

lc_messages_dir
blog
percona.com
manual

lc_time_names
blog
percona.com
manual

license
blog
percona.com
manual

local_infile
blog
percona.com
manual

local_infile
blog
percona.com
manual

lock_wait_timeout
blog
percona.com
manual

locked_in_memory
blog
percona.com
manual

log
blog
percona.com
manual

log_bin
blog
percona.com
manual

log_bin
blog
percona.com
manual

log_bin_index
blog
percona.com
manual

log_bin_trust_function_creators
blog
percona.com
manual

log_error
blog
percona.com
manual

log_isam
blog
percona.com
manual

log_output
blog
percona.com
manual

log_queries_not_using_indexes
blog
percona.com
manual

log_short_format
blog
percona.com
manual

log_slave_updates
blog
percona.com
manual

log_slow_admin_statements
blog
percona.com
manual

log_slow_queries
blog
percona.com
manual

log_slow_slave_statements
blog
percona.com
manual

log_tc
blog
percona.com
manual

log_tc_size
blog
percona.com
manual

log_warnings
blog
percona.com
manual

long_query_time
blog
percona.com
manual

low_priority_updates
blog
percona.com
manual

lower_case_file_system
blog
percona.com
manual

lower_case_table_names
blog
percona.com
manual

master_bind
blog
percona.com
manual

master_connect_retry
blog
percona.com
manual

master_host
blog
percona.com
manual

master_info_file
blog
percona.com
manual

master_password
blog
percona.com
manual

master_port
blog
percona.com
manual

master_retry_count
blog
percona.com
manual

master_ssl
blog
percona.com
manual

master_ssl_ca
blog
percona.com
manual

master_ssl_capath
blog
percona.com
manual

master_ssl_cert
blog
percona.com
manual

master_ssl_cipher
blog
percona.com
manual

master_ssl_key
blog
percona.com
manual

master_user
blog
percona.com
manual

max_allowed_packet
blog
percona.com
manual

max_binlog_cache_size
blog
percona.com
manual

max_binlog_dump_events
blog
percona.com
manual

max_binlog_size
blog
percona.com
manual

max_binlog_stmt_cache_size
blog
percona.com
manual

max_connect_errors
blog
percona.com
manual

max_connections
blog
percona.com
manual

max_delayed_threads
blog
percona.com
manual

max_error_count
blog
percona.com
manual

max_heap_table_size
blog
percona.com
manual

max_insert_delayed_threads
blog
percona.com
manual

max_join_size
blog
percona.com
manual

max_length_for_sort_data
blog
percona.com
manual

max_prepared_stmt_count
blog
percona.com
manual

max_relay_log_size
blog
percona.com
manual

max_seeks_for_key
blog
percona.com
manual

max_sort_length
blog
percona.com
manual

max_sp_recursion_depth
blog
percona.com
manual

max_tmp_tables
blog
percona.com
manual

Max_used_connections
blog
percona.com
manual

max_user_connections
blog
percona.com
manual

max_write_lock_count
blog
percona.com
manual

memlock
blog
percona.com
manual

min_examined_row_limit
blog
percona.com
manual

myisam_block_size
blog
percona.com
manual

myisam_data_pointer_size
blog
percona.com
manual

myisam_max_sort_file_size
blog
percona.com
manual

myisam_mmap_size
blog
percona.com
manual

myisam_recover
blog
percona.com
manual

myisam_recover_options
blog
percona.com
manual

myisam_recover_options
blog
percona.com
manual

myisam_repair_threads
blog
percona.com
manual

myisam_sort_buffer_size
blog
percona.com
manual

myisam_stats_method
blog
percona.com
manual

myisam_use_mmap
blog
percona.com
manual

named_pipe
blog
percona.com
manual

net_buffer_length
blog
percona.com
manual

net_read_timeout
blog
percona.com
manual

net_retry_count
blog
percona.com
manual

net_write_timeout
blog
percona.com
manual

new
blog
percona.com
manual

no_defaults
blog
percona.com
manual

Not_flushed_delayed_rows
blog
percona.com
manual

old
blog
percona.com
manual

old_alter_table
blog
percona.com
manual

old_passwords
blog
percona.com
manual

old_style_user_limits
blog
percona.com
manual

one_thread
blog
percona.com
manual

Open_files
blog
percona.com
manual

open_files_limit
blog
percona.com
manual

Open_streams
blog
percona.com
manual

Open_table_definitions
blog
percona.com
manual

Open_tables
blog
percona.com
manual

Opened_files
blog
percona.com
manual

Opened_table_definitions
blog
percona.com
manual

Opened_tables
blog
percona.com
manual

optimizer_prune_level
blog
percona.com
manual

optimizer_search_depth
blog
percona.com
manual

optimizer_switch
blog
percona.com
manual

partition
blog
percona.com
manual

performance_schema
blog
percona.com
manual

Performance_schema_cond_classes_lost
blog
percona.com
manual

Performance_schema_cond_instances_lost
blog
percona.com
manual

performance_schema_events_waits_history_long_size
blog
percona.com
manual

performance_schema_events_waits_history_size
blog
percona.com
manual

Performance_schema_file_classes_lost
blog
percona.com
manual

Performance_schema_file_handles_lost
blog
percona.com
manual

Performance_schema_file_instances_lost
blog
percona.com
manual

Performance_schema_locker_lost
blog
percona.com
manual

performance_schema_max_cond_classes
blog
percona.com
manual

performance_schema_max_cond_instances
blog
percona.com
manual

performance_schema_max_file_classes
blog
percona.com
manual

performance_schema_max_file_handles
blog
percona.com
manual

performance_schema_max_file_instances
blog
percona.com
manual

performance_schema_max_mutex_classes
blog
percona.com
manual

performance_schema_max_mutex_instances
blog
percona.com
manual

performance_schema_max_rwlock_classes
blog
percona.com
manual

performance_schema_max_rwlock_instances
blog
percona.com
manual

performance_schema_max_table_handles
blog
percona.com
manual

performance_schema_max_table_instances
blog
percona.com
manual

performance_schema_max_thread_classes
blog
percona.com
manual

performance_schema_max_thread_instances
blog
percona.com
manual

Performance_schema_mutex_classes_lost
blog
percona.com
manual

Performance_schema_mutex_instances_lost
blog
percona.com
manual

Performance_schema_rwlock_classes_lost
blog
percona.com
manual

Performance_schema_rwlock_instances_lost
blog
percona.com
manual

Performance_schema_table_handles_lost
blog
percona.com
manual

Performance_schema_table_instances_lost
blog
percona.com
manual

Performance_schema_thread_classes_lost
blog
percona.com
manual

Performance_schema_thread_instances_lost
blog
percona.com
manual

pid_file
blog
percona.com
manual

plugin
blog
percona.com
manual

plugin_dir
blog
percona.com
manual

plugin_load
blog
percona.com
manual

port
blog
percona.com
manual

port_open_timeout
blog
percona.com
manual

preload_buffer_size
blog
percona.com
manual

Prepared_stmt_count
blog
percona.com
manual

print_defaults
blog
percona.com
manual

profiling
blog
percona.com
manual

profiling_history_size
blog
percona.com
manual

protocol_version
blog
percona.com
manual

proxy_user
blog
percona.com
manual

pseudo_thread_id
blog
percona.com
manual

Qcache_free_blocks
blog
percona.com
manual

Qcache_free_memory
blog
percona.com
manual

Qcache_hits
blog
percona.com
manual

Qcache_inserts
blog
percona.com
manual

Qcache_lowmem_prunes
blog
percona.com
manual

Qcache_not_cached
blog
percona.com
manual

Qcache_queries_in_cache
blog
percona.com
manual

Qcache_total_blocks
blog
percona.com
manual

Queries
blog
percona.com
manual

query_alloc_block_size
blog
percona.com
manual

query_cache_limit
blog
percona.com
manual

query_cache_min_res_unit
blog
percona.com
manual

query_cache_size
blog
percona.com
manual

query_cache_type
blog
percona.com
manual

query_cache_wlock_invalidate
blog
percona.com
manual

query_prealloc_size
blog
percona.com
manual

Questions
blog
percona.com
manual

rand_seed1
blog
percona.com
manual

rand_seed2
blog
percona.com
manual

range_alloc_block_size
blog
percona.com
manual

read_buffer_size
blog
percona.com
manual

read_only
blog
percona.com
manual

read_rnd_buffer_size
blog
percona.com
manual

relay_log
blog
percona.com
manual

relay_log_index
blog
percona.com
manual

relay_log_info_file
blog
percona.com
manual

relay_log_purge
blog
percona.com
manual

relay_log_recovery
blog
percona.com
manual

relay_log_space_limit
blog
percona.com
manual

replicate_do_db
blog
percona.com
manual

replicate_do_table
blog
percona.com
manual

replicate_ignore_db
blog
percona.com
manual

replicate_ignore_table
blog
percona.com
manual

replicate_rewrite_db
blog
percona.com
manual

replicate_same_server_id
blog
percona.com
manual

replicate_wild_do_table
blog
percona.com
manual

replicate_wild_ignore_table
blog
percona.com
manual

report_host
blog
percona.com
manual

report_password
blog
percona.com
manual

report_port
blog
percona.com
manual

report_user
blog
percona.com
manual

rpl_recovery_rank
blog
percona.com
manual

Rpl_semi_sync_master_clients
blog
percona.com
manual

rpl_semi_sync_master_enabled
blog
percona.com
manual

Rpl_semi_sync_master_net_avg_wait_time
blog
percona.com
manual

Rpl_semi_sync_master_net_wait_time
blog
percona.com
manual

Rpl_semi_sync_master_net_waits
blog
percona.com
manual

Rpl_semi_sync_master_no_times
blog
percona.com
manual

Rpl_semi_sync_master_no_tx
blog
percona.com
manual

Rpl_semi_sync_master_status
blog
percona.com
manual

Rpl_semi_sync_master_timefunc_failures
blog
percona.com
manual

rpl_semi_sync_master_timeout
blog
percona.com
manual

rpl_semi_sync_master_trace_level
blog
percona.com
manual

Rpl_semi_sync_master_tx_avg_wait_time
blog
percona.com
manual

Rpl_semi_sync_master_tx_wait_time
blog
percona.com
manual

Rpl_semi_sync_master_tx_waits
blog
percona.com
manual

rpl_semi_sync_master_wait_no_slave
blog
percona.com
manual

Rpl_semi_sync_master_wait_pos_backtraverse
blog
percona.com
manual

Rpl_semi_sync_master_wait_sessions
blog
percona.com
manual

Rpl_semi_sync_master_yes_tx
blog
percona.com
manual

rpl_semi_sync_slave_enabled
blog
percona.com
manual

Rpl_semi_sync_slave_status
blog
percona.com
manual

rpl_semi_sync_slave_trace_level
blog
percona.com
manual

Rpl_status
blog
percona.com
manual

safe_mode
blog
percona.com
manual

safe_show_database
blog
percona.com
manual

safe_user_create
blog
percona.com
manual

secure_auth
blog
percona.com
manual

secure_file_priv
blog
percona.com
manual

Select_full_join
blog
percona.com
manual

Select_full_range_join
blog
percona.com
manual

Select_range
blog
percona.com
manual

Select_range_check
blog
percona.com
manual

Select_scan
blog
percona.com
manual

server_id
blog
percona.com
manual

shared_memory
blog
percona.com
manual

shared_memory_base_name
blog
percona.com
manual

show_slave_auth_info
blog
percona.com
manual

skip_character_set_client_handshake
blog
percona.com
manual

skip_concurrent_insert
blog
percona.com
manual

skip_event_scheduler
blog
percona.com
manual

skip_external_locking
blog
percona.com
manual

skip_grant_tables
blog
percona.com
manual

skip_host_cache
blog
percona.com
manual

skip_locking
blog
percona.com
manual

skip_log_warnings
blog
percona.com
manual

skip_name_resolve
blog
percona.com
manual

skip_networking
blog
percona.com
manual

skip_partition
blog
percona.com
manual

skip_safemalloc
blog
percona.com
manual

skip_show_database
blog
percona.com
manual

skip_slave_start
blog
percona.com
manual

skip_ssl
blog
percona.com
manual

skip_stack_trace
blog
percona.com
manual

skip_symbolic_links
blog
percona.com
manual

skip_thread_priority
blog
percona.com
manual

slave_compressed_protocol
blog
percona.com
manual

slave_exec_mode
blog
percona.com
manual

Slave_heartbeat_period
blog
percona.com
manual

slave_load_tmpdir
blog
percona.com
manual

slave_net_timeout
blog
percona.com
manual

Slave_open_temp_tables
blog
percona.com
manual

Slave_received_heartbeats
blog
percona.com
manual

Slave_retried_transactions
blog
percona.com
manual

Slave_running
blog
percona.com
manual

slave_skip_errors
blog
percona.com
manual

slave_transaction_retries
blog
percona.com
manual

slave_type_conversions
blog
percona.com
manual

Slow_launch_threads
blog
percona.com
manual

slow_launch_time
blog
percona.com
manual

Slow_queries
blog
percona.com
manual

slow_query_log
blog
percona.com
manual

slow_query_log_file
blog
percona.com
manual

socket
blog
percona.com
manual

sort_buffer_size
blog
percona.com
manual

Sort_merge_passes
blog
percona.com
manual

Sort_range
blog
percona.com
manual

Sort_rows
blog
percona.com
manual

Sort_scan
blog
percona.com
manual

sporadic_binlog_dump_fail
blog
percona.com
manual

sql_auto_is_null
blog
percona.com
manual

sql_big_selects
blog
percona.com
manual

sql_big_tables
blog
percona.com
manual

sql_buffer_result
blog
percona.com
manual

sql_log_bin
blog
percona.com
manual

sql_log_off
blog
percona.com
manual

sql_log_update
blog
percona.com
manual

sql_low_priority_updates
blog
percona.com
manual

sql_max_join_size
blog
percona.com
manual

sql_mode
blog
percona.com
manual

sql_notes
blog
percona.com
manual

sql_quote_show_create
blog
percona.com
manual

sql_safe_updates
blog
percona.com
manual

sql_select_limit
blog
percona.com
manual

sql_slave_skip_counter
blog
percona.com
manual

sql_warnings
blog
percona.com
manual

ssl
blog
percona.com
manual

Ssl_accept_renegotiates
blog
percona.com
manual

Ssl_accepts
blog
percona.com
manual

ssl_ca
blog
percona.com
manual

Ssl_callback_cache_hits
blog
percona.com
manual

ssl_capath
blog
percona.com
manual

ssl_cert
blog
percona.com
manual

ssl_cipher
blog
percona.com
manual

Ssl_cipher
blog
percona.com
manual

Ssl_cipher_list
blog
percona.com
manual

Ssl_client_connects
blog
percona.com
manual

Ssl_connect_renegotiates
blog
percona.com
manual

Ssl_ctx_verify_depth
blog
percona.com
manual

Ssl_ctx_verify_mode
blog
percona.com
manual

Ssl_default_timeout
blog
percona.com
manual

Ssl_finished_accepts
blog
percona.com
manual

Ssl_finished_connects
blog
percona.com
manual

ssl_key
blog
percona.com
manual

Ssl_session_cache_hits
blog
percona.com
manual

Ssl_session_cache_misses
blog
percona.com
manual

Ssl_session_cache_mode
blog
percona.com
manual

Ssl_session_cache_overflows
blog
percona.com
manual

Ssl_session_cache_size
blog
percona.com
manual

Ssl_session_cache_timeouts
blog
percona.com
manual

Ssl_sessions_reused
blog
percona.com
manual

Ssl_used_session_cache_entries
blog
percona.com
manual

Ssl_verify_depth
blog
percona.com
manual

Ssl_verify_mode
blog
percona.com
manual

ssl_verify_server_cert
blog
percona.com
manual

Ssl_version
blog
percona.com
manual

standalone
blog
percona.com
manual

storage_engine
blog
percona.com
manual

symbolic_links
blog
percona.com
manual

sync_binlog
blog
percona.com
manual

sync_frm
blog
percona.com
manual

sync_master_info
blog
percona.com
manual

sync_relay_log
blog
percona.com
manual

sync_relay_log_info
blog
percona.com
manual

sysdate_is_now
blog
percona.com
manual

system_time_zone
blog
percona.com
manual

table_definition_cache
blog
percona.com
manual

table_lock_wait_timeout
blog
percona.com
manual

Table_locks_immediate
blog
percona.com
manual

Table_locks_waited
blog
percona.com
manual

table_open_cache
blog
percona.com
manual

table_type
blog
percona.com
manual

tc_heuristic_recover
blog
percona.com
manual

Tc_log_max_pages_used
blog
percona.com
manual

Tc_log_page_size
blog
percona.com
manual

Tc_log_page_waits
blog
percona.com
manual

temp_pool
blog
percona.com
manual

thread_cache_size
blog
percona.com
manual

thread_concurrency
blog
percona.com
manual

thread_handling
blog
percona.com
manual

thread_stack
blog
percona.com
manual

Threads_cached
blog
percona.com
manual

Threads_connected
blog
percona.com
manual

Threads_created
blog
percona.com
manual

Threads_running
blog
percona.com
manual

time_format
blog
percona.com
manual

time_zone
blog
percona.com
manual

timed_mutexes
blog
percona.com
manual

timestamp
blog
percona.com
manual

tmp_table_size
blog
percona.com
manual

tmpdir
blog
percona.com
manual

transaction_alloc_block_size
blog
percona.com
manual

transaction_isolation
blog
percona.com
manual

transaction_prealloc_size
blog
percona.com
manual

tx_isolation
blog
percona.com
manual

unique_checks
blog
percona.com
manual

updatable_views_with_limit
blog
percona.com
manual

Uptime
blog
percona.com
manual

Uptime_since_flush_status
blog
percona.com
manual

user
blog
percona.com
manual

verbose
blog
percona.com
manual

version
blog
percona.com
manual

version_comment
blog
percona.com
manual

version_compile_machine
blog
percona.com
manual

version_compile_os
blog
percona.com
manual

wait_timeout
blog
percona.com
manual

warning_count
blog
percona.com
manual

Entry posted by Baron Schwartz |
No comment
Add to: | | | |

MySQL NUMA allocations under 2.6.32+

Dec 30, 2010

refering Jeremy Cole’s post on swapstorming under NUMA hardware, I’ll note something potentially new.While I’ve seen this “brick wall swapstorming” a few times before and since the post, I just saw some new OS installs not do this by default, and using the numactl to change the defaults is actually harmful to system interactivity.In the brick-wall cases, two NUMA zones of ~30G each, plus a mysqld (or memcached) running with 45G of ram, would equal 30G in memory, and 15G in swap. Ugly.In this case, I’m getting a little bit in swap, but a relatively even note dist.Here’s a box with no numactl tuning:
N0 : 7068733 ( 26.97 GB)
N1 : 7120258 ( 27.16 GB)
active : 13355529 ( 50.95 GB)
anon : 14187441 ( 54.12 GB)
dirty : 14185099 ( 54.11 GB)
mapmax : 265 ( 0.00 GB)
mapped : 1580 ( 0.01 GB)
swapcache : 2350 ( 0.01 GB)
similar hardware, same OS/kernel running under numactl –interleave=all:
N0 : 6778742 ( 25.86 GB)
N1 : 6313382 ( 24.08 GB)
active : 12395957 ( 47.29 GB)
anon : 13090566 ( 49.94 GB)
dirty : 13090566 ( 49.94 GB)
mapmax : 255 ( 0.00 GB)
mapped : 1588 ( 0.01 GB)
… just a touch in swap on the first guy. Though I’m going to wait a few days to declare victory or defeat, since I did see the first guy dump nearly a whole gig of swap once, but wasn’t able to confirm if the swapped memory was mysql yet.The side note here is that my numactl-modified node is exhibiting some extreme latency on interactivity. Appears to be related to anything that needs to fork having a half-second delay. MySQL seems to be running fine though.I haven’t investigated at all as to how numa distribution has changed in recent kernels (though I know it’s been steadily improving over the years). Unfortunately every other box I’ve used which *has* the problem, runs on a redhat/centos5 kernel. Which is ancient to an extreme.In this case it’s debian squeeze with its default 2.6.32 kernel. Anyone try a recent ubuntu or redhat6 yet and see if the NUMA/swap issues are better on there?

Ubuntu Upstart for automatic MySQL start and stop

Dec 25, 2010

Here at Recorded Future we use Ubuntu (running on Amazon EC2), but so far we have not explored Ubuntu Upstart that much. During the holidays I made an effort to get acquainted with Upstart and to implement proper MySQL start and stop with it.If you do not know Upstart, this is the way you start and stop services in Ubuntu, and it serves the same purpose as the old /etc/init.d scripts, but are a bit more structured and powerful. That said, Upstart is regrettably far from complete, although the functionality is much better and Upstart has some cool features, some things do not work that well. For one thing, documentation, where it exists, is useless, at best. Secondly, there is very limited ability to test and develop Upstart scripts. And this is made worse by the fact that the documentation is so bad. Another thing is that Upstart insist on stopping services, by default, by sending a brutal kill signal. Not good for databases, mostly.In the /etc/init directory are the Upstart scripts you have. In difference to the old init.d scripts, you cannot disable a service in Upstart curenntly. If it is in /etc/init it will be started at system start. That’s it. And this is something that I am sure will be fixed, but for now, again, is something we have to live with. Upstart scripts have the suffix .conf (don’t ask me why), so the default MySQL Upstart script, for example, is called /etc/init/mysql.conf.In an Upstart script, there are Stanzas that determine what to do. Like the exec Stanza that runs a program for example. And you may then ask, when is it run? Startup? Shutdown? And the answer is startup. For shutting things down, as I said before, Upstart will by default just send a kill -9 signal.The minimal startup script you can have, and this actually works in a reasonable way, is to just have one line with an exec stanza, like this:exec /usr/bin/mydaemonWhich will start the daemon. For stopping the daemon, Upstart will send a -9 signal to the started process by default, and nothing more is needed in the Upstart script.For MySQL, we need to make things a bit more complicated. The default mysql.conf Upstart script really is not good. For one thing, it will not do a controlled shutdown of MySQL (this is possible even if Upstart will eventually send a kill -9 anyway). Secondly, this script assumes that what we use is a standard Ubunty installed MySQL distribution, so if you have installed MySQL in /usr/bin/mysql5147 or somethings like that, you are out of luck.So what I wanted to create was an Upstart script for MySQL that fullfilled these requirements:Starts MySQL automatically.Waits for MySQL to be available before exiting.Be configurable to support different MySQL install locations, data directories etc.Do a clean shutdown of MySQL when stopping the MySQL services.Before I show you what I ended up with, I want to comment on the points 2 and 4 above. With Upstart, you can define a script or command to run just before or after a services has been started or stopped, and this is what I use to wait for MySQL to become available, and to send a SIGTERM to the MySQL Server when stopping (which will do a clean MySQL shutdown).So here we go, a complete MySQL Upstart script, the way I want it to work:## MySQL Service for Recorded Future#description “MySQL Server”author “Anders Karlsson, Recorded Future”start on (net-device-up and local-filesystems and runlevel [2345])stop on runlevel [016]expect forkkill timeout 2# Set variables.env MYSQL_ETC=/etc/mysqlenv MYSQL_PIDFILE=/var/run/mysql.pidenv MYSQL_HOME=/usr/local/mysql5.5env MYSQL_INSTANCE=myumask 007exec $MYSQL_HOME/bin/mysqld_safe –defaults-file=$MYSQL_ETC/$MYSQL_INSTANCE.cnf >> /tmp/x.out &post-start script loop=600# Wait for MySQL to start. while [ $loop -gt 0 ]; do if $MYSQL_HOME/bin/mysqladmin –defaults-file=$MYSQL_ETC/$MYSQL_INSTANCE.cnf ping; then break fi loop=$(($loop – 1)) sleep 1 done exit 0end script# Send a soft SIGTERM to MySQL before Upstart will kill it.# A Sigterm to mysqld will cause a controlled shutdown.pre-stop script exec kill -SIGTERM `cat $MYSQL_PIDFILE`# Wait for MySQL to end. Flushing buffers and all. loop=600 while [ $loop -gt 0 ]; do# If the pidfile is found, then continue waiting. if [ -e $MYSQL_PIDFILE ] ; then loop=$((loop – 1)) sleep 1 continue fi break doneend scriptTo be honest, this is not what I create for all our MySQL servers. Instead I used this to create a chef template, chef is what we use for configuration management here (see http://www.opscode.com/ for more on chef), and here it is put to good ude to generate an Upstart script for MySQL. The above is just an example./Karlsson

Proposal for MariaDB trademark policy

Dec 21, 2010

Within Monty Program Ab we have during this year had a lot of discussions about how to go forward with the MariaDB trademark. It’s been clear that everyone wants to have something that is substantially freer than the MySQL trademark to ensure the survival of MariaDB whatever happens to Monty Program Ab.We wanted to make something that should work well, both for open source and commercial usage (and yes, I know that in some cases these are one and the same), which is not very common with many other trademark policies. My belief is that by having a very liberal trademark policy we will create a bigger ecosystem around MariaDB which will help all of us.Now we have had a couple of internal drafts (with heavy input from our community advocates) and we have released our first public draft.Please give us feedback about this either on my blog or the knowledge base so that we can take your thoughts into account for our final version!

MySQL Workbench: Manage MySQL on Windows Servers the Windows way

Dec 13, 2010

The MySQL team has been continuously improving its products on the Windows platform.?Along this line, we’ve responded to a request from our users of Workbench on Windows – to provide remote access to Windows Servers using Windows management methods – as an alternative? to SSH.
Managing a MySQL server obviously requires access to the target machine, which usually requires elevated rights for certain tasks like restarting the server or manipulating the configuration file on Windows (where this file is in a protected path). For local connections this is mostly not a big deal. However for remote boxes security measures prevent easy manipulation of such essential things like server processes. In this blog post we discuss native Windows management and how it can be used in MySQL Workbench.

Remote Management
MySQL Workbench first introduced remote access via SSH (secure shell), a widely used and well known approach for secure remote access, especially in the Linux world. Microsoft Windows does not come with an in-built SSH server, hence an additional installation is due. For Windows users is SSH quite an unkown land and very often security rules, policies, company restrictions etc. do not allow to add extra software or open access via SSH. Also setting up SSH is non trivial and can be quite a challenge forless technical users. For these reason we have added support for native Windows management, which comes at no extra cost, since it is built into Windows already.
Native Windows Management
The management we will discuss here is not about how to add users or databases to a MySQL server and things like that.? It’s rather about? administering the MySQL server Instance that we’ll discuss here – for instance, DBA tasks such as manipulating the MySQL configuration file or controlling the server processes. Windows comes with a universal management layer called WMI (Windows Management Instrumentation). WMI is a very powerful means to query all kind of data from a Windows system (drivers, BIOS, motherboard, performance data etc.) and to manipulate the state of certain components (services, subsystems etc.). If you are going to manage a MySQL installation on a Windows server from a Windows machine (Workbench supports Windows 7) then WMI is the way to go. Due to security restrictions (e.g. UAC) WMI access works best in a domain setup as it already has all the necessary pieces to make the interplay work seamlessly. At the end of the article I have included additional information to help when setting up native Windows management for non-domain environments. However beware as that involves? disabling some important UACs, which is not advisable in most instances.
In a Windows domain you will need is a user login that has local administrator rights on the target machine MySQL server runs on. By default firewalls and access rules are typicallu set so that Workbench can connect without extra effort. WMI is used to query a server’s status and start or stop it as well as to get system information like CPU load and memory usage. Manipulating the MySQL configuration file is done by using Window’s normal file system functions, which means the target box must provide access to the file via a shared folder. By default Windows systems have a number of default shares that are always available (so-called administrative shares that give access to the entire hard disk, provided you know the administrator’s credentials for login). On the client side you can then use different possibilities to access the server by using:

A mapped drive, e.g. Z:\<path to file>\my.ini
An administrative share, e.g. \\<server>\C$\<path to file>\my.ini
An explicit share which gives access only to the file or its parent folder, e.g. \\<server>\<share>\my.ini.

This should be an old hat for most Windows users, though I wanted to point out the possibilities.
Setting up a Server Instance
Let’s get to the actual setup of a new server instance in MySQL Workbench. What you need is:

The target server’s name or IP address.
Name and password of a user which is a local administrator -? a member of the administors group -? on the target machine.
The name of the MySQL service to manage.
The path of the configuration file.

Workbench will try to help you with the last two points by giving you a list of MySQL servers it finds on the remote computer and their configuration file location. So it should mostly be point-and-click once you are logged in there.
Connect to the Target Machine
Open the New Server Instance Wizard from Workbench’s home screen. It comes up with the initial screen that allows you to specify the host machine of the MySQL server you want to manage thereby determining if it is a local or a remote connection. For the sake of simplicity let’s reuse a MySQL connection that has been created already in the SQL Development section. A server instance always needs such a connection. So either you reuse an already defined one or create a new one that is then added to the list of connections.

In this example I have used a Windows 2008 R2 server, which hosts the MySQL server. After selecting the connection proceed to the next page by clicking on the “Next” button. The wizard will do some initial tests and display the outcome. For a few more details (especially if something goes wrong) I recommend to open the log window using the “Show Logs” button on the wizard form.

After proceeding to the next page you will be asked to select which type of remote management you want to use. Here is where you will see the Windows Remote option.

Since we want native Windows management the option the choice is obvious. Proceeding to the next page causes the wizard to open a WMI connection to the target machine and retrieve a list of installed MySQL servers (whether running or not). Note that only the MySQL servers installed as Windows Service are recognized. In order to connect we need the credentials for a user on the target machine. As mentioned earlier, this user must be a local administrator.

Don’t get confused by the term “Service” in the login dialog. This is not the Windows service but a key that describes the given credentials. Together with the user name it defines a tupel to allow storage and retrieval of the password. Once the connection is established you can choose the server you want to manage. Selecting a server entry will automatically fill the configuration file path with a default value constructed from the server name, the administrative share C$ and the path of the file found in the service entry. Usually this is a good guess and should work most of the time.

Sometimes though things are a bit different and you can get an error when you switch to the next page.
In that case just go back to the previous page and open the file selector by clicking on the “…” button. A File Open Dialog will pop up that allows to select the file you need. This also works for remote machines, just type the machine name in the input box or use the network branch for selection. Sometimes directly accessing a share might pose problems so you may alternatively want to map a network drive in Explorer before you go on with the selection of the configuration file. For our demo the letter Z has been mapped to \\workbench.testing\C$.

After you have picked the correct file, continue to the next page which will again check if the file is accessible from MySQL Workbench. Note: only the last of the 3 tests will be performed as we already have a connection and hence don’t need to test that again. And as we are on Windows no test for any system command is required. They must be available anyway (otherwise the installation is probably broken).

Continuing, the wizard will bring up a small window asking you for a decision regarding if you just want to proceed or review what settings have been collected so far. Usually you can go on and finish the wizard after you gave your new server instance profile a proper name.

If you however want to review the details, e.g. because there is still an error at this point then click on the button “I’d like to review the settings again”. This will bring up a page that would otherwise just be skipped, which lists the collected details and allows you to opt to change them manually. This is btw. the only way to adjust the section in the configuration file that is managed by MySQL Workbench in this wizard. However, the Server Instance Manager allows to set this value as well. The default is “mysqld”.

If you checked the option “Change Parameters” you will get to a page that allows you to select the configuration file, and also let’s you test again if the file is accessible and if the given section exists in it.

Once you are satisfied with the result click “Next” to continue with the last wizard page, where you can specify a name for the new instance and finish the wizard.

Note: In the case something goes wrong you will see that the wizard does not force you to provide 100% correct details most of the time. In fact you can still continue and create the server instance even if currently no connection is possible or you do not have all relevant details. Of course without correct user credentials the wizard is not able to give you a list of installed services, so this is the minimum information, which must be correct.
What about Windows Workgroups?
In smaller and/or home networks there is typically no domain controller active, so the relationship between Windows boxes is a bit different and it is sometimes much more complicated to adjust all the necessary settings to allow this kind of access from one machine to another. Note: non-domain environments are not supported by MySQL Workbench due to various problems there.
However there are a number of web pages that discuss the use of WMI in such scenarios, which might help you to get it to work. A good overview what needs to be set can be found on the “Connecting to WMI Remotely Starting with Windows Vista” page. Most of the time you will find that these settings are already in place (except for the firewall exception), though you still get either of the most common errors:

“RPC Server not available”, which indicates the target WMI service cannot be reached at all, usually because of firewalls or wrong server name.
“Access denied” which is? the result of access-token-filtering even if an administrator is logged in.

Denied-access errors are usually caused by the UAC. Read here what Microsoft has to say about “User Account Control and WMI”. Also consider the following tips:

Add user with Administrator rights or set the proper rights for another user in “Computer Management/Services and Applications/WMI-Control -> context menu-> Security”
Firewall (“netsh firewall set service RemoteAdmin enable”)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\ForceGuest must be 0.
A user connecting from a remote computer must have the SC_MANAGER_CONNECT privilege enabled to be able to enumerate services (admins usually have).

User Account Control is the major blocking stone in a workgroup environment. You will find connections to an old Windows XP box much simpler as there is no such thing as UAC there. Even for local management (i.e. MySQL Servers on the box where MySQL Workbench runs on) is affected by UAC. Running the application as administrator solves this (or disabling UAC). However since both methods are not recommended we have changed Workbench for this special case so it uses the old “sc” command to start and stop a service, in order to minimize trouble and effort for the most common case. WMI is still used for monitoring, just not for service control.

SQL and NoSQL

Nov 30, 2010

Alaric Snell-Pym discusses why choose between SQL and NoSQL? Why can’t you use both in your infrastructure?”NoSQL engines abandon SQL for the chance to have more flexible data models and softer semantics for update operations – but they also abandon it because it?s a lot of work to implement. And, creating a new database from scratch, they?re keen on solving the interesting hard problems (such as replicated data storage), rather than following the well-trodden path of writing SQL parsers and query planners, with a few decades of catching up with the competition ahead of them.”

Lean Startups and Scalability

Nov 30, 2010

I wrote this as a reply to Does Lean Startup Methodology Apply to Consumer Startups?” However, due to comment length restrictions on that blog, I am posting my comment here and welcome your thoughts.”An enterprise will pilot products and iterate with a vendor: Let’s run a 6 month consulting engagement/pilot to evaluate if this new database solves the problem.”Only an enterprise where there is a major disconnect between management and engineering will opt for this path. In enterprises where needed data I/O patterns are understood, taking such path may spell disaster. The primary problem with the ‘lean startup’ methodology that I see is that it blindly preaches entrepreneurs to close their eyes, cut corners and just get the product to market without fully understanding the future scalability needs. Scalability doesn’t has to be sacrificed in order to build a lean startup, except in those cases where there is no architect on board.Many entrepreneurs think of taking route of frameworks in early days only to find out the haunting effects as growth happens.Case studies exist where massive infrastructures with low latencies have been built without blowing budgets and need for re-architecting infrastructures. The concept of lean startups is great, but incomplete (especially as it is being preached).When the right architects and team is on-board, building the right way also becomes the lean way. <update> Let’s not forget that data is the most valuable asset of an organization and every migration a great opportunity for a screwup. Do you really want to migrate it around from database to database as you sit with your fingers crossed hoping that the latest vendor will solve your problem? Or does it make more sense to invest in an experienced architect and then make decisions rather than shooting in the dark? I’ll let you decide the rest.

Installing Lighttpd With PHP5 And MySQL Support On Ubuntu 10.10

Nov 30, 2010

Installing Lighttpd With PHP5 And MySQL Support On Ubuntu 10.10

Lighttpd is a secure, fast, standards-compliant web server designed
for speed-critical environments. This tutorial shows how you can install
Lighttpd on an Ubuntu 10.10 server with PHP5 support (through FastCGI)
and MySQL support.

Improving MySQL Insert thoughput

Nov 05, 2010

There are three simple practices that can improve general INSERT throughput. Each requires consideration on how the data is collected and what is acceptable data loss in a disaster.
General inserting of rows can be performed as single INSERT’s for example.

INSERT INTO table (col1, col2, col3) VALUES (?, ?, ?);
INSERT INTO table (col1, col2, col3) VALUES (?, ?, ?);
INSERT INTO table (col1, col2, col3) VALUES (?, ?, ?);

While this works, there are two scalability limitations. First is the network overhead of the back and forth of each SQL statement, the second is the synchronous nature, that is your code can not continue until your INSERT is successfully completed.
The first improvement is to use MySQL’s multi values capability with INSERT. That is you can insert multiple rows with a single INSERT statement. For example:

INSERT INTO table (col1, col2, col3) VALUES (?, ?, ?), VALUES (?, ?, ?), (?, ?, ?);

Depending on how you collect the information to be inserted, you may be able to easily implement this. The benefit, as previously mentioned in The value of multi insert values shows an 88% improvement in performance.
One system variable to be aware of is max_allowed_packet. You may have to adjust this for larger INSERT statements.
Next is the ability to INSERT data based on information already in another table. You can also leverage for example another storage engine like MEMORY to batch up data to be inserted via this approach.

INSERT INTO table (col1, col2, col3) SELECT col1, col2, col3 FROM anothertable

The third option is to batch load your data from a flat file. Depending on how you source the information you are inserting, that may also be a significant improvement in throughput in bulk inserting data.

LOAD DATA [CONCURRENT] INFILE ‘file’
INTO TABLE (col1, col2, col3)

On a closing note, the choice of storage engine can also have a significant effect on INSERT throughput. MySQL also offers other non ANSI options including DELAYED, IGNORE and LOW_PRIORITY. These should definitely be avoided.

Cloud, SaaS and The Consumerization of IT

Nov 01, 2010


I wrote a guest column for GigaOm on how open source software, cloud and software as a service are helping to bring about the consumerization of IT: namely bringing simplicity where complexity reigned. ?I cited some examples including New Relic, Box.net and Apple.

Open source has gone a long way toward putting power back in the hands of developers, who can download, install and deploy software without having to go through any kind of?convoluted sales or budget approval process. ?You want?MySQL? ?You can download and install?in?15 minutes, and you don?t have to talk to anyone to do it.
Software as a service (SaaS) takes this to an even broader audience, enabling employees to get the kind of lightweight, consumer, self-serve capabilities in their job without even having to run their own servers. ?Platforms like?Amazon AWS, Heroku, Makara, RightScale?and others put this same kind of SaaS power in the hands of developers…
My view: ease of use trumps a long feature list any day of the week. There are both techological reasons as well as sociological and economic reasons for why organizations are seeking greater simplicity. ?Part of this stems from the fact that complex enterprise applications grew beyond the ability of most organizations to successfully adopt. ?

Head over to GigaOm for the full post.