my.cnf解释

my.cnf参数配置
[client]
port            = 3306
socket          = /opt/mysql/data/mysql.sock
default-character-set = utf8  # 设置mysql客户端默认字符集
 
[mysqld]    当启动MySQL服务器时,它由[mysqld]配置段中所定义的命令来控制。
port            = 3306  # mysql服务端默认监听(listen on)的TCP/IP端口
socket          = /opt/mysql/data/mysql.sock
skip-external-locking #不使用系统锁定,要使用myisamchk,必须关闭服务器
skip-name-resolve #禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。
#skip_networking  #禁止网络连接,不会产生3306端口,用于本机调试;
key_buffer_size = 64M #myisam索引buffer,只有key没有data
max_allowed_packet = 20M
table_cache=3096  #用于设置table高速缓存的数量。
table_open_cache = 6144 #表描述符缓存大小,可减少文件打开/关闭次数
table_definition_cache=4096 #默认400
tmp_table_size=64M # 内存中的每个临时表允许的最大大小。如果临时表大小超过该值,临时表将自动转为基于磁盘的表
max_heap_table_size=64M #该变量设置MEMORY (HEAP)表可以增长到的最大空间大小
sort_buffer_size = 512k   #排序buffer大小;线程级别
read_buffer_size = 512k  #读查询操作所能使用的缓冲区大小。
read_rnd_buffer_size = 512K#MyISAM以索引扫描(Random Scan)方式扫描数据的buffer大小;线程级别
join_buffer_size=512K  #联合查询操作所能使用的缓冲区大小。
myisam_sort_buffer_size = 64M#MyISAM 设置恢复表之时使用的缓冲区的尺寸,当在REPAIR TABLE或用CREATE INDEX创建索引或ALTER TABLE过程中排序 MyISAM索引分配的缓冲区
query_cache_type=0
query_cache_size= 0   # 查询缓存大小,用于缓存SELECT查询结果。
bulk_insert_buffer_size=32M  #默认8M参数来提高数据插入的效率,这个参数设置的是 bulk insert 的缓存大小
thread_cache_size = 64 #缓存的最大线程数。
thread_stack=256K
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8
character_set_server = utf8  # 服务端使用编码的utf8字符集
max_connection=1024   #mysql服务器支持的最大并发连接数据(用户数)
max_user_connections=1000
max_connect_errors=10000   #如果某个用户发起的连接error超过该数值,则该用户的下次连接将被阻塞,直到管理员执行flush hosts ; 
wait_timeout=100 #等待关闭连接的时间
connect_timeout = 20#连接超时之前的最大秒数,在Linux平台上,该超时也用作等待服务器首次回应的时间
interactive_timeout=100 #关闭连接之前,允许interactive_timeout(取代了wait_timeout)秒的不活动时间。客户端的会话wait_timeout变量被设为会话interactive_timeout变量的值。
back_log = 500 #back_log参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。默认值为50。对于Linux系统推荐设置为小于512的整数。
server-id       = 1
###################binlog############
log-bin=/opt/mysql/logs/mysql-bin 
binlog_format=row
max_binlog_size=128M
binlog_cache_size=2M #session级别
expire-logs-days = 5  #保存5天binlog日志
 
###################replication################
slave-net-timeout=10  #默认3600 #从服务器也能够处理网络连接中断。但是,只有从服务器超过slave_net_timeout秒没有从主服务器收到数据才通知网络中断
rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_wait_no_slave=1
rpl_semi_sync_master_timeout=1000
skip-slave-start #启动mysql,不启动复制
log_slave_updates=1
relay_log_recovery=1
#############slow log 慢查询###########
slow_query_log =1  #1为开启慢查询 on
slow_query_log_file=/opt/mysql/logs/mysql.slow  #慢查询的日志目录
long_query_time=2  #慢查询时间  超过2秒则为慢查询
##################errlog################
log-error=/opt/mysql/logs/error.log #日志目录
############## InnoDB###########
innodb_data_home_dir = /data/logs/mysql
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /data/logs/mysql
innodb_buffer_pool_size =11G # InnoDB使用缓冲池来缓存索引和行数据。该值设置的越大,则磁盘IO越少。一般将该值设为物理内存的80%。我一般都是设置物理内存70%。16G内存算的
innodb_buffer_pool_instances=8  #默认1
innodb_additional_mem_pool_size = 16M # InnoDB用于存储元数据信息的内存池大小
innodb_flush_log_at_trx_commit = 2  # 事务相关参数,如果值为1,则InnoDB在每次commit都会将事务日志写入磁盘(磁盘IO消耗较大),这样保证了完全的ACID特性。而如果设置为0,则表示事务日志写入内存log和内存log写入磁盘的频率都为1次/秒。如果设为2则表示事务日志在每次commit都写入内存log,但内存log写入磁盘的频率为1次/秒。
innodb_log_buffer_size=64M # InnoDB日志数据缓冲大小,如果缓冲满了,就会将缓冲中的日志数据写入磁盘(flush)。由于一般至少都1秒钟会写一次磁盘,所以没必要设置过大,即使是长事务。
innodb_log_file_size=1024M # 每一个InnoDB事务日志的大小。一般设为innodb_buffer_pool_size的25%到100%
innodb_log_files_in_group=3 #默认2 
innodb_lock_wait_timeout = 10 #默认50
innodb_sync_spin_loops  =40   #默认30
innodb_max_dirty_pages_pct=90  #与检查点有关系,默认75
innodb_thread_concurrency=0  #默认为0
innodb_thread_sleep_delay=500  #默认10000
innodb_concurrency_tickets=1000  #默认500
innodb_flush_method= O_DIRECT #这个参数控制着innodb数据文件及redo log的打开、刷写模式,对于这个参数,文档上是这样描述的:
有三个值:fdatasync(默认),O_DSYNC,O_DIRECT
默认是fdatasync,调用fsync()去刷数据文件与redo log的buffer
为O_DSYNC时,innodb会使用O_SYNC方式打开和刷写redo log,使用fsync()刷写数据文件
为O_DIRECT时,innodb使用O_DIRECT打开数据文件,使用fsync()刷写数据文件跟redo log
innodb_file_per_table  #开启独立表空间
innodb_read_io_threads=8  #用于从磁盘读文件块的线程数
inodb_write_io_threads=8 #用于写脏页的线程数
inodb_io_capacity = 2000
innodb_file_format=Barracuda  #有两参数1.Antelope(默认),2. Barracuda 注意在安装数据库时就要调整
innodb_purge_threads=1 #默认0在之前版本,碎片回收操作是主线程的一部分,这经定期调度的方式运行,但会阻塞数据库的其他操作;到5.5以后,可以将这个线程独立出来 ;方法:innodb_purge_threads =1 
这个应该能让碎片回收得更及时而且不影响其他线程的操作;
innodb_purge_batch_size=32 #是否开启独立的线程清除undo页,默认是0不开启,每次删除的页数由Innodb_purge_batch_size控制,默认是20
innodb_old_blocks_pct=75 #默认37一个是sublist of old blocks区域(不经常访问的数据)
innodb_change_buffering=all #默认all
 
[mysqldump]
quick
max_allowed_packet = 16M
 
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
 
[myisamchk]
key_buffer_size = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M
 
[mysqlhotcopy]
interactive-timeout

你可能感兴趣的:(my.cnf解释)