my.cnf示例解释

来源:互联网 发布:生命的本质是什么知乎 编辑:程序博客网 时间:2024/06/11 07:28

使用下列my.cnf作为--default-file 初始化数据库之前先确保清空log和data文件夹。

如下所示:

[mysqld_safe]
pid-file=/opt/mysql/run/mysqld.pid
#malloc-lib=/opt/mysql/lib/libjemalloc.so

[mysql]
port=3306
prompt=\\u@\\d \\r:\\m:\\s>
default-character-set=gbk
no-auto-rehash

[client]
port=3306
socket=/opt/mysql/run/mysql.sock

[mysqld]
#dir
basedir=/opt/mysql
datadir=/opt/mysql/data
tmpdir=/tmp
lc_messages_dir=/opt/mysql/share
log-error=/opt/mysql/log/alert.log
slow_query_log_file=/opt/mysql/log/slow.log     #5.6版本的必须是这个名称,如果不是的话,启动mysql的时候会提示pid文件找不到。
general_log_file=/opt/mysql/log/general.log
socket=/opt/mysql/run/mysql.sock

#innodb
innodb_data_home_dir=/opt/mysql/data
innodb_log_group_home_dir=/opt/mysql/data
innodb_data_file_path=ibdata1:2G;ibdata2:16M:autoextend
innodb_buffer_pool_size=10G
innodb_buffer_pool_instances=4
innodb_log_files_in_group=2
innodb_log_file_size=1G
innodb_log_buffer_size=200M
innodb_flush_log_at_trx_commit=1
innodb_additional_mem_pool_size=20M #用于存放Innodb的字典信息和其他一些内部结构所需要的内存空间,一般20M足够
innodb_max_dirty_pages_pct=60   #默认为75,控制脏页在Buffer_Pool中所占的比率。当超过这个比例阈值时,InnoDB会把InnoDB_Buffer_Pool中的脏页刷入磁盘。
innodb_io_capacity=1000              #动态调整刷新脏页的数量,默认是200页,大小取决于磁盘的IOPS。
innodb_thread_concurrency=16     #默认为0,表示不限制InnoDB并发线程数。 innodb_thread_tickets默认为5000次的通行证.
innodb_read_io_threads=8            #此根据CPU核数来更改相应的值。当读操作比写操作多时,那么可以设置read为10 write为8,根据实际情况进行调整。
innodb_write_io_threads=8           #这两个值默认都为4
innodb_open_files=60000
innodb_file_format=Barracuda       #默认为Antelope,必须采用Barracuda文件格式且独立表空间时才支持数据页压缩。共享表空间不支持。
innodb_file_per_table=1
innodb_flush_method=O_DIRECT
innodb_change_buffering=inserts    #默认为all,同时开启删除缓冲和插入缓冲功能。取值包括 all/none/inserts/deletes/changes/purges
innodb_adaptive_flushing=1
innodb_old_blocks_time=1000       #在访问sublist of old blocks区域里的数据块时,在移动到sublist of new blocks区域之前,数据停留在sublist of old blocks区域的时间(微秒),然后再移动到sublist of new blocks区域,这样就保证了sublist of new blocks区域里的数据不会马上被踢出。
innodb_stats_on_metadata=0        #InnoDB更新元数据时的统计功能,5.6后默认关闭。
innodb_read_ahead_threshold=0  #默认为56页,采用线性预读算法时的page页数量阈值,达到该阈值时则开始线性预读,用以提高IO性能。
innodb_use_native_aio=0              #是否启用异步I/O,默认是ON
innodb_lock_wait_timeout=5    #InnoDB锁超时时间,默认是50秒
innodb_rollback_on_timeout=0
innodb_purge_threads=1      #默认为1,使用专用的后台 purge 线程(单独线程)来才清除操作,需结合innodb_purge_batch_size来使用,默认值是300
innodb_strict_mode=1     #默认为OFF(0),开启语法严格检查模式,如果写法有错误,不会有警告信息,而是直接抛出错误,建议开启,尤其是采用了页数据压缩功能后。
transaction-isolation=READ-COMMITTED   #Innodb事务隔离级别,默认为REPEATABLE-READ

#myisam
key_buffer=64M
myisam_sort_buffer_size=64M
concurrent_insert=2
delayed_insert_timeout=300

#replication
master-info-file=/opt/mysql/log/master.info
relay-log=/opt/mysql/log/relaylog
relay_log_info_file=/opt/mysql/log/relay-log.info
relay-log-index=/opt/mysql/log/mysqld-relay-bin.index
slave_load_tmpdir=/opt/mysql/tmp
slave_type_conversions="ALL_NON_LOSSY"
slave_net_timeout=4
skip-slave-start
sync_master_info=1000
sync_relay_log_info=1000

#binlog
log-bin=/opt/mysql/log/mysql-bin
binlog_cache_size=32K   #当使用事务的存储引擎InnoDB时,所有未提交的事务会记录到该缓存中,等待事务提交时,直接将缓冲中的二进制日志写入二进制日志文件
max_binlog_cache_size=2G
max_binlog_size=500M
binlog-format=ROW
sync_binlog=1000
log-slave-updates=1 #开启从前一台机器上同步过来的数据同步到下一台机器(多主多从时),默认为OFF, 值为0 
expire_logs_days=0

#server
default-storage-engine=INNODB
character-set-server=gbk
lower_case_table_names=1
skip-external-locking
open_files_limit=65536
safe-user-create
local-infile=1
#sqlmod="STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE"
performance_schema=0

log_slow_admin_statements=1
log_warnings=1
long_query_time=1             #默认为10秒
slow_query_log=1
general_log=0

query_cache_type=0
query_cache_size=0

table_definition_cache=65536
#table_cache=65536

thread_stack=512K
thread_cache_size=256
read_rnd_buffer_size=128K
sort_buffer_size=256K
join_buffer_size=128K
read_buffer_size=128K

port=3306
skip-name-resolve
skip-ssl
max_connections=4500
max_user_connections=4000
max_connect_errors=65536
max_allowed_packet=128M  #在一个查询中传递的数据过大,导致 error: 2006 MySQL server has gone away这种情况下可以通过设置此参数来修复
connect_timeout=8
net_read_timeout=30
net_write_timeout=60
back_log=1024

#server_id=