【转】MySQL my.cnf 参数 详解

[client]
port    = 3306    //客户端端口号为3306
socket  = /tmp/mysql.sock  //套接字文件(sockets),这种文件通常用在网络上的资料套接,mysqld守护进程生成了这个文件,其余与mysql相关的程序想使用mysql,估计就是经过这个文件了。
 mysql

[mysql]   
no-auto-rehash  //仅仅容许使用键值的 UPDATEs 和 DELETEs .sql

[mysqld]
character-set-server = utf8  //新数据库或数据表的默认字符集。为了与MySQL的早期版本保持兼容,这个字符集也能够用–default-character-set选项给出; 但这个选项已经显得有点过期了。
replicate-ignore-db = mysql  //不对这个数据库进行镜像处理。
replicate-ignore-db = test
replicate-ignore-db = information_schema
user    = mysql   //mysqld程序在启动后将在给定UNIX/Linux帐户下执行; mysqld必须从root帐户启动才能在启动后切换到另外一个帐户下执行; mysqld_safe脚本将默认使用–user=mysql选项来启动mysqld程序。
port    = 3306   //为MySQL程序指定一个TCP/IP通讯端口(一般是3306端口)。
socket  = /tmp/mysql.sock
basedir = /usr/local/mysql  //使用给定目录做为根目录(安装目录)。
datadir = /data/mysql/data       //从给定目录读取数据库文件。
open_files_limit    = 10240  //设置打开文件数量容许至少值。
back_log = 600  //back_log是操做系统在监听队列中所能保持的链接数,队列保存了再mysql链接管理器线程处理以前的链接,若是你有很是高的链接率而且出现"connection refused"报错,你就应该增长此处的值。检查你的操做系统文档来获取这个变量的最大值,若是将back_log设定到比你操做系统限制更高的值,将会没有效果。
max_connections = 3000   //MySQL服务器同时处理的数据库链接的最大数量(默认设置是100)。
max_connect_errors = 6000  //每一个客户端链接最大的错误容许数量,若是达到了此限制,这个客户端将会被mysql服务阻止直到执行了“flush hosts”或者服务重启;非法的密码以及其余在连接时的错误会增长此值,查看“aborted_connects”状态来获取全局计数器。
table_cache = 614  //同时打开的数据表的数量(默认设置是64)。全部线程所打开表的数量,增长此值就增长了Mysqld所须要的文件描述符的数量,这样你须要确认在【mysqld】中“open-files-limit”变量设置打开文件数量容许至少4096, table_cache=2048.
external-locking = FALSE //容许外部文件级别的锁,打开文件锁会对性能形成负面影响,因此只有在你在一样的文件上运行多个数据库实例时才使用此选项(注意仍会有其余约束!),或者你在文件层面上使用了其余一些软件依赖来锁定MyISAM表。
max_allowed_packet = 32M  //服务所能处理的请求包的最大大小以及服务所能处理的最大的请求大小(当与大的BLOB字段一块儿工做时至关必要),每一个连接独立的大小,大小动态增长。
sort_buffer_size = 2M   //为排序操做分配的缓存区的长度(默认设置是2M); 若是这个缓存区过小,则必须建立一个临时文件来进行排序。
join_buffer_size = 2M    //在参加JOIN操做的数据列没有索引时为JOIN操做分配的缓存区长度(默认设置是128K)。
thread_cache_size = 300  //咱们在cache中保留多少线程用于重用,当一个客户端断开链接后,若是cache中的线程还少于thread_cache_size,则客户端线程被放入cache中,这能够在你须要大量新链接的时候极大的减小线程建立的开销(通常来讲若是你有好的线程模型的话,这不会有明显的性能提高)。
thread_concurrency = 8   //容许线程并发大小,官方推荐设置和 CPU 最大线程同样。
query_cache_size = 512M  //查询缓存区的最大长度(默认设置是0,不开辟查询缓存区)。
query_cache_limit = 2M  //容许临时存放在查询缓存区里的查询结果的最大长度(默认设置是1M)。
query_cache_min_res_unit = 2k //设置查询缓存分配内存的最小单位,要适当地设置此参数,能够作到为减小内存块的申请和分配次数,可是设置过大可能致使内存碎片数值上升。默认值为4K,建议设置为1k~16K。
default-storage-engine = MyISAM  //新数据表的默认数据表类型(默认设置是MyISAM)。这项设置还能够经过–default-table-type选项来设置。
default_table_type = MyISAM  //当建立新表时做为默认使用的表类型,若是在建立表示没有特别执行表类型,将会使用此值。数据库

thread_stack = 192K  //线程使用的堆大小,此容量的内存在每次链接时被预留。mysql自己常不会须要超过64K的内存,若是你使用你本身的须要大量堆的UDF函数,或者你的操做系统对于某些操做须要更多的堆,你也许须要将其设置的更高一点。
transaction_isolation = READ-COMMITTED  //设定默认的事务隔离级别,可用的级别有:READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE。
tmp_table_size = 246M  //临时HEAP数据表的最大长度(默认设置是32M); 超过这个长度的临时数据表将被转换为MyISAM数据表并存入一个临时文件。
max_heap_table_size = 246M   //HEAP数据表的最大长度(默认设置是16M); 超过这个长度的HEAP数据表将被存入一个临时文件而不是驻留在内存里。
long_query_time = 3  //慢查询的执行用时上限(默认设置是10s)。
log-bin = /data/mysql/3306/mysql-bin  //把对数据进行修改的全部SQL命令(也就是INSERT、UPDATE和DELETE命令)以二进制格式记入日志(二进制变动日志,binary update log)。这种日志的文件名是filename.n或默认的hostname.n,其中n是一个6位数字的整数(日志文件按顺序编号)。
binlog_cache_size = 4M  //在一个事务中binlog为了记录sql状态所持有的cache大小,若是你常用大的,多声明的事务,你能够增长此值来得到更大的性能,全部从事务来的状态都被缓冲在binlog缓冲中,而后再提交后一次性写入到binlog中,若是事务比此值大,会使用磁盘上的临时文件来替代,此缓冲在每一个连接的事务第一次更新状态时被建立。
binlog_format = MIXED   //STATEMENT,ROW,MIXED # 基于SQL语句的复制(statement-based replication, SBR),基于行的复制(row-based replication, RBR),混合模式复制(mixed-based replication, MBR)。相应地,binlog的格式也有三种:STATEMENT,ROW,MIXED。
max_binlog_cache_size = 8M  //最大的二进制Cache日志缓冲区尺寸。
max_binlog_size = 1G  //二进制日志文件的最大长度(默认设置是1GB)。在前一个二进制日志文件里的信息量超过这个最大长度以前,MySQL服务器会自动提供一个新的二进制日志文件接续上。
expire_logs_days = 30   //超过30天的binlog删除。
key_buffer_size = 256M  //用来存放索引区块的RMA值(默认设置是8M)。
read_buffer_size = 1M   //为从数据表顺序读取数据的读操做保留的缓存区的长度(默认设置是128KB); 这个选项的设置值在必要时能够用SQL命令SET SESSION read_buffer_size = n命令加以改变。
read_rnd_buffer_size = 16M  //相似于read_buffer_size选项,但针对的是按某种特定顺序(好比使用了ORDER BY子句的查询)输出的查询结果(默认设置是256K)。
bulk_insert_buffer_size = 64M  //为一次插入多条新记录的INSERT命令分配的缓存区长度(默认设置是8M)。
myisam_sort_buffer_size = 128M   //MyISAM 设置恢复表之时使用的缓冲区的尺寸,当在REPAIR TABLE或用CREATE INDEX建立索引或ALTER TABLE过程当中排序 MyISAM索引分配的缓冲区。
myisam_max_sort_file_size = 10G  //MyISAM 若是临时文件会变得超过索引,不要使用快速排序索引方法来建立一个索引。注释:这个参数以字节的形式给出.重建MyISAM索引(在REPAIR TABLE、ALTER TABLE或LOAD DATA INFILE过程当中)时,容许MySQL使用的临时文件的最大空间大小。若是文件的大小超过该值,则使用键值缓存建立索引,要慢得多。该值的单位为字节。
myisam_repair_threads = 1    //若是该值大于1,在Repair by sorting过程当中并行建立MyISAM表索引(每一个索引在本身的线程内)。
myisam_recover    //容许的GROUP_CONCAT()函数结果的最大长度。
 
skip-name-resolve   //grant 时,必须使用ip不能使用主机名。
master-connect-retry = 10  //若是与主控服务器的链接没有成功,则等待n秒(s)后再进行管理方式(默认设置是60s)。若是从属服务器存在mater.info文件,它将忽略此选项。
slave-skip-errors = 1032,1062,126,1114,1146,1048,1396  //即便发生出错代码为n一、n2等的错误,镜像处理工做也继续进行(即无论发生什么错误,镜像处理工做也继续进行)。若是配置得当,从属服务器不该该在执行 SQL命令时发生错误(在主控服务器上执行出错的SQL命令不会被发送到从属服务器上作镜像处理); 若是不使用slave-skip-errors选项,从属服务器上的镜像工做就可能由于发生错误而中断,中断后须要有人工参与才能继续进行。缓存

server-id = 1  //给服务器分配一个独一无二的ID编号; n的取值范围是1~2的32次方启用二进制日志功能。服务器

innodb_additional_mem_pool_size = 16M  //帧缓存的控制对象须要今后处申请缓存,因此该值与innodb_buffer_pool对应。
innodb_buffer_pool_size = 1024M  //包括数据页、索引页、插入缓存、锁信息、自适应哈希因此、数据字典信息。
innodb_data_home_dir = /data/mysqldata/  //InnoDB主目录,全部与InnoDB数据表有关的目录或文件路径都相对于这个路径。在默认的状况下,这个主目录就是MySQL的数据目录。
innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend  //用来容纳InnoDB为数据表的表空间: 可能涉及一个以上的文件; 每个表空间文件的最大长度都必须以字节(B)、兆字节(MB)或千兆字节(GB)为单位给出; 表空间文件的名字必须以分号隔开; 最后一个表空间文件还能够带一个autoextend属性和一个最大长度(max:n)。例如,ibdata1:1G; ibdata2:1G:autoextend:max:2G的意思是: 表空间文件ibdata1的最大长度是1GB,ibdata2的最大长度也是1G,但容许它扩充到2GB。除文件名外,还能够用硬盘分区的设置名来定义表 空间,此时必须给表空间的最大初始长度值加上newraw关键字作后缀,给表空间的最大扩充长度值加上raw关键字作后缀(例如/dev/hdb1: 20Gnewraw或/dev/hdb1:20Graw); MySQL 4.0及更高版本的默认设置是ibdata1:10M:autoextend。#innodb_data_file_path = ibdata1:50M:autoextend   
innodb_log_group_home_dir = /data/mysqldata/  //用来存放InnoDB日志文件的目录路径(如ib_logfile0、ib_logfile1等)。在默认的状况下,InnoDB驱动程序将使用 MySQL数据目录做为本身保存日志文件的位置。
innodb_file_io_threads = 4  //I/O操做(硬盘写操做)的最大线程个数(默认设置是4)。
innodb_thread_concurrency = 8    //InnoDB驱动程序可以同时使用的最大线程个数(默认设置是8)。
innodb_flush_log_at_trx_commit = 2  //这个选项决定着何时把日志信息写入日志文件以及何时把这些文件物理地写(术语称为”同步”)到硬盘上。设置值0的意思是每隔一秒写一第二天志并进行 同步,这能够减小硬盘写操做次数,但可能形成数据丢失; 设置值1(设置设置)的意思是在每执行完一条COMMIT命令就写一第二天志并进行同步,这能够防止数据丢失,但硬盘写操做可能会很频繁; 设置值2是通常折衷的办法,即每执行完一条COMMIT命令写一第二天志,每隔一秒进行一次同步。
innodb_log_buffer_size = 16M  //事务日志文件写操做缓存区的最大长度(默认设置是1MB)。
innodb_log_file_size = 128M   //事物日志大小.
innodb_log_files_in_group = 3 //使用多少个日志文件(默认设置是2)。InnoDB数据表驱动程序将以轮转方式依次填写这些文件; 当全部的日志文件都写满之后,以后的日志信息将写入第一个日志文件的最大长度(默认设置是5MB)。这个长度必须以MB(兆字节)或GB(千兆字节)为单 位进行设置。
innodb_max_dirty_pages_pct = 90  //innodb主线程刷新缓存池中的数据,使脏数据比例小于90%.
innodb_lock_wait_timeout = 120  //若是某个事务在等待n秒(s)后尚未得到所须要的资源,就使用ROLLBACK命令放弃这个事务。这项设置对于发现和处理未能被InnoDB数据表驱动 程序识别出来的死锁条件有着重要的意义。这个选项的默认设置是50s。
innodb_file_per_table = 0  //0表示关闭独立的表空间,1表示开启独立的表空间
[mysqldump]
quick      //不要在将内存中的整个结果写入磁盘以前缓存. 在导出很是巨大的表时须要此项 。
max_allowed_packet = 32M   //服务所能处理的请求包的最大大小以及服务所能处理的最大的请求大小(当与大的BLOB字段一块儿工做时至关必要),每一个连接独立的大小,大小动态增长。网络

参考:http://blog.csdn.net/wulantian/article/details/8260423并发

相关文章
相关标签/搜索