如下是 my.cnf 配置文件参数解释:
#*** client options 相关选项 ***#
#如下选项会被MySQL客户端应用读取。注意只有MySQL附带的客户端应用程序保证能够读取这段内容。若是你想你本身的MySQL应用程序获取这些值。须要在MySQL客户端库初始化的时候指定这些选项。
[client]
port = 3309
socket = /usr/local/mysql/tmp/mysql.sock
[mysqld]
!include /usr/local/mysql/etc/mysqld.cnf
#包含的配置文件 ,把用户名,密码文件单独存放
port = 3309
bind-address = 0.0.0.0
server-id = 1
#表示是本机的序号为1,惟一
socket = /usr/local/mysql/tmp/mysql.sock
pid-file = /usr/local/mysql/var/mysql.pid
basedir = /usr/local/mysql/
datadir = /usr/local/mysql/var/
tmpdir = /usr/local/mysql/tmp/
#此目录被 MySQL用来保存临时文件.例如,它被用来处理基于磁盘的大型排序,和内部排序同样,以及简单的临时表.若是你不建立很是大的临时文件,将其放置到 swapfs/tmpfs 文件系统上也许比较好。另外一种选择是你也能够将其放置在独立的磁盘上.你可使用”;”来放置多个路径,他们会按照 roud-robin 方法被轮询使用.
slave-load-tmpdir = /usr/local/mysql/tmp/
#当 slave 执行 load data infile 时用
#*** skip options 相关选项 ***#
skip-name-resolve
#禁止 MySQL 对外部链接进行 DNS 解析,使用这一选项能够消除 MySQL 进行 DNS 解析的时间。但须要注意,若是开启该选项,则全部远程主机链接受权都要使用 IP 地址方式,不然 MySQL 将没法正常处理链接请求!
skip-symbolic-links
#不能使用链接文件,多个客户可能会访问同一个数据库,所以这防止外部客户锁定 MySQL 服务器。 该选项默认开启
skip-external-locking
#不使用系统锁定,要使用 myisamchk,必须关闭服务器 ,避免 MySQL的外部锁定,减小出错概率加强稳定性。
skip-slave-start
#启动 mysql,不启动复制
skip-networking
#开启该选项能够完全关闭 MySQL 的 TCP/IP 链接方式,若是 WEB 服务器是以远程链接的方式访问 MySQL 数据库服务器则不要开启该选项!不然将没法正常链接! 若是全部的进程都是在同一台服务器链接到本地的 mysqld, 这样设置将是加强安全的方法
sysdate-is-now = 1
#把SYSDATE 函数编程为 NOW的别名
#*** 系统资源相关选项 ***#
back_log = 50
#接受队列,对于没创建 tcp 链接的请求队列放入缓存中,队列大小为 back_log,受限制与 OS 参数,试图设定 back_log 高于你的操做系统的限制将是无效的。默认值为 50。对于 Linux 系统推荐设置为小于512的整数。若是系统在一个短期内有不少链接,则须要增大该参数的值
max_connections = 1000
#指定MySQL容许的最大链接进程数。若是在访问数据库时常常出现"Too Many Connections"的错误提 示,则须要增大该参数值。
max_connect_errors = 10000
#若是某个用户发起的链接 error 超过该数值,则该用户的下次链接将被阻塞,直到管理员执行 flush hosts ; 命令或者服务重启, 防止黑客 , 非法的密码以及其余在连接时的错误会增长此值
open_files_limit = 10240
#MySQL打开的文件描述符限制,默认最小1024;当open_files_limit没有被配置的时候,比较max_connections*5和ulimit-n的值,哪一个大用哪一个,当open_file_limit被配置的时候,比较open_files_limit和max_connections*5的值,哪一个大用哪一个。
connect-timeout = 10
#链接超时以前的最大秒数,在 Linux 平台上,该超时也用做等待服务器首次回应的时间
wait-timeout = 28800
#等待关闭链接的时间
interactive-timeout = 28800
#关闭链接以前,容许 interactive_timeout(取代了wait_timeout)秒的不活动时间。客户端的会话 wait_timeout 变量被设为会话interactive_timeout 变量的值。若是前端程序采用短链接,建议缩短这2个值, 若是前端程序采用长链接,可直接注释掉这两个选项,默认配置(8小时)
slave-net-timeout = 600
#从服务器也可以处理网络链接中断。可是,只有从服务器超过slave_net_timeout 秒没有从主服务器收到数据才通知网络中断
net_read_timeout = 30
#从服务器读取信息的超时
net_write_timeout = 60
#从服务器写入信息的超时
net_retry_count = 10
#若是某个通讯端口的读操做中断了,在放弃前重试屡次
net_buffer_length = 16384
#包消息缓冲区初始化为 net_buffer_length 字节,但须要时能够增加到 max_allowed_packet 字节
max_allowed_packet = 64M
# 服务所能处理的请求包的最大大小以及服务所能处理的最大的请求大小(当与大的BLOB 字段一块儿工做时至关必要), 每一个链接独立的大小.大小动态增长。 设置最大包,限制server接受的数据包大小,避免超长SQL的执行有问题 默认值为16M,当MySQL客户端或mysqld
服务器收到大于 max_allowed_packet 字节的信息包时,将发出“信息包过大”错误,并关闭链接。对于某些客户端,若是通讯信息包过大,在执行查询期间,可能会遇到“丢失与 MySQL 服务器的链接”错误。默认值 16M。
table_cache = 512
# 全部线程所打开表的数量. 增长此值就增长了mysqld所须要的文件描述符的数量这样你须要确认在[mysqld_safe]中 “open-files-limit” 变量设置打开文件数量容许至少4096
thread_stack = 192K
# 线程使用的堆大小. 此容量的内存在每次链接时被预留.MySQL 自己常不会须要超过 64K 的内存若是你使用你本身的须要大量堆的 UDF 函数或者你的操做系统对于某些操做须要更多的堆,你也许须要将其设置的更高一点.默认设置足以知足大多数应用
thread_cache_size = 20
# 咱们在 cache 中保留多少线程用于重用.当一个客户端断开链接后,若是 cache 中的线程还少于 thread_cache_size,则客户端线程被放入 cache 中.这能够在你须要大量新链接的时候极大的减小线程建立的开销(通常来讲若是你有好的线程模型的话,
这不会有明显的性能提高.)服务器线程缓存这个值表示能够从新利用保存在缓存中线程的数量,当断开链接时若是缓存中还有空间,那么客户端的线程将被放到缓存中,若是线程从新被请求,那么请求将从缓存中读取,若是缓存中是空的或者是新的请求,那么这个线程将被从新建立,
若是有不少新的线程,增长这个值能够改善系统性能.经过比较 Connections 和 Threads_created 状态的变量,能够看到这个变量的做用
根据物理内存设置规则以下:
1G —> 8
2G —> 16
3G —> 32
大于3G —> 64
thread_concurrency = 8
#此容许应用程序给予线程系统一个提示在同一时间给予渴望被运行的线程的数量.该参数取值为服务器逻辑CPU数量×2,在本例中,服务器有 2 颗物理CPU,而每颗物理CPU又支持H.T超线程,因此实际取值为 4 × 2 = 8.设置 thread_concurrency的值的正确与否,
对 mysql 的性能影响很大, 在多个 cpu(或多核)的状况下,错误设置了 thread_concurrency 的值, 会致使 mysql 不能充分利用多 cpu(或多核),出现同一时刻只能一个 cpu(或核)在工做的状况。 thread_concurrency 应设为 CPU 核数的 2 倍.好比有一个双核的 CPU,
那么 thread_concurrency 的应该为 4; 2 个双核的 cpu,thread_concurrency 的值应为 8,属重点优化参数
#*** qcache settings 相关选项 ***#
query_cache_limit = 2M
#不缓存查询大于该值的结果.只有小于此设定值的结果才会被缓冲, 此设置用来保护查询缓冲,防止一个极大的结果集将其余全部的查询结果都覆盖.
query_cache_min_res_unit = 2K
#查询缓存分配的最小块大小.默认是 4KB,设置值大对大数据查询有好处,但若是你的查询都是小数据查询,就容易形成内存碎片和浪费
查询缓存碎片率 = Qcache_free_blocks / Qcache_total_blocks * 100%
若是查询缓存碎片率超过 20%,能够用 FLUSH QUERY CACHE 整理缓存碎片,或者试试减少query_cache_min_res_unit,若是你的查询都是小数据量的话。
查询缓存利用率 = (query_cache_size – Qcache_free_memory) / query_cache_size *100%
查询缓存利用率在 25%如下的话说明 query_cache_size 设置的过大,可适当减少;查询缓存利用率在 80%以上并且 Qcache_lowmem_prunes > 50 的话说明 query_cache_size 可能有点小,要不就是碎片太多。
查询缓存命中率 = (Qcache_hits – Qcache_inserts) / Qcache_hits * 100%
query_cache_size = 64M
#指定 MySQL 查询缓冲区的大小。能够经过在 MySQL 控制台执行如下命令观察:
代码:
> SHOW VARIABLES LIKE '%query_cache%';
> SHOW STATUS LIKE 'Qcache%';若是 Qcache_lowmem_prunes 的值很是大,则代表常常出现缓冲不够的状况;
若是 Qcache_hits 的值很是大,则代表查询缓冲使用很是频繁,若是该值较小反而会影响效率,那么能够考虑不用查询缓冲; Qcache_free_blocks,若是该值很是大,则代表缓冲区中碎片不少。
memlock # 若是你的系统支持 memlock() 函数,你也许但愿打开此选项用以让运行中的 mysql 在在内存高度
紧张的时候,数据在内存中保持锁定而且防止可能被 swapping out,此选项对于性能有益
#*** default settings 相关选项 ***#
default_table_type = InnoDB
# 当建立新表时做为默认使用的表类型,若是在建立表示没有特别执行表类型,将会使用此值
default-time-zone = system
#服务器时区
character-set-server = utf8
#server 级别字符集
default-storage-engine = InnoDB
#默认存储引擎
#*** tmp && heap settings 相关选项 ***#
tmp_table_size = 512M
#临时表的最大大小,若是超过该值,则结果放到磁盘中,此限制是针对单个表的,而不是总和.
max_heap_table_size = 512M
#独立的内存表所容许的最大容量.此选项为了防止意外建立一个超大的内存表致使永尽全部的内存资源.
#*** log settings 相关选项 ***#
log-bin = mysql-bin
#打开二进制日志功能.在复制(replication)配置中,做为 MASTER 主服务器必须打开此项.若是你须要从你最后的备份中作基于时间点的恢复,你也一样须要二进制日志.这些路径相对于 datadir
log_slave_updates = 1
#表示slave将复制事件写进本身的二进制日志
log-bin-index = mysql-bin.index
#二进制的索引文件名
relay-log = relay-log
#定义relay_log的位置和名称,若是值为空,则默认位置在数据文件的目录,文件名为host_name-relay-bin.nnnnnn(By default, relay log file names have the form host_name-relay-bin.nnnnnn in the data directory);
relay_log_index = relay-log.index
#relay-log的索引文件名
log-warnings = 1
# 将警告打印输出到错误 log 文件.若是你对于MySQL有任何问题,你应该打开警告 log 而且仔细审查错误日志,查出可能的缘由.
log-error = /usr/local/mysql/log/mysql.err
#错误日志路径
log_output = FILE
#参数 log_output 指定了慢查询输出的格式,默认为 FILE,你能够将它设为 TABLE,而后就能够查询 mysql 架构下的 slow_log 表了
log_slow_queries
#指定是否开启慢查询日志(该参数要被slow_query_log取代,作兼容性保留)
slow_query_log = 1
# 指定是否开启慢查询日志. 慢查询是指消耗了比 “long_query_time” 定义的更多时间的查询.若是 log_long_format 被打开,那些没有使用索引的查询也会被记录.若是你常常增长新查询到已有的系统内的话. 通常来讲这是一个好主意,
long-query-time = 1
#设定慢查询的阀值,超出次设定值的SQL即被记录到慢查询日志,缺省值为10s.全部的使用了比这个时间(以秒为单位)更多的查询会被认为是慢速查询.不要在这里使用”1″, 不然会致使全部的查询,甚至很是快的查询页被记录下来(因为MySQL 目前时间的精确度只能达到秒的级别).
log_long_format
# 在慢速日志中记录更多的信息.通常此项最好打开,打开此项会记录使得那些没有使用索引的查询也被做为到慢速查询附加到慢速日志里
slow_query_log_file = /usr/local/mysql/log/slow.log
# 指定慢日志文件存放位置,能够为空,系统会给一个缺省的文件host_name-slow.log
log-queries-not-using-indexes
#若是运行的SQL语句没有使用索引,则mysql数据库一样会将这条SQL语句记录到慢查询日志文件中。
min_examined_row_limit=1000
#记录那些因为查找了多余1000次而引起的慢查询
long-slow-admin-statements
#记录那些慢的optimize table,analyze table和alter table语句
log-slow-slave-statements
#记录由Slave所产生的慢查询
general_log = 1
#将全部到达MySQL Server的SQL语句记录下来,默认关闭
general_log_file = /usr/local/mysql/log/mysql.log
#general_log路径
max_binlog_size = 1G
#若是二进制日志写入的内容超出给定值,日志就会发生滚动。你不能将该变量设置为大于1GB或小于4096字节。 默认值是1GB。若是你正使用大的事务,二进制日志还会超过max_binlog_size
max_relay_log_size = 1G
#标记relaylog容许的最大值,若是该值为0,则默认值为max_binlog_size(1G);若是不为0,则max_relay_log_size则为最大的relay_log文件大小;
relay-log-purge = 1
#是否自动清空再也不须要中继日志时。默认值为1(启用)
expire_logs_days = 30
#超过 30 天的 binlog 删除
binlog_cache_size = 1M
# 在一个事务中 binlog 为了记录 SQL 状态所持有的 cache 大小,若是你常用大的,多声明的事务,你能够增长此值来获取更大的性能.全部从事务来的状态都将被缓冲在 binlog 缓冲中而后在提交后一次性写入到 binlog 中,若是事务比此值大, 会使用磁盘上的临时文件来替代.此缓冲在每一个链接的事务第一次更新状态时被建立.session 级别
replicate-wild-ignore-table = mysql.%
#复制时忽略数据库及表
slave_skip_errors=all
#定义复制过程当中从服务器能够自动跳过的错误号,当复制过程当中遇到定义的错误号,就能够自动跳过,直接执行后面的SQL语句。
slave_skip_errors选项有四个可用值,分别为:off,all,ErorCode,ddl_exist_errors。
默认状况下该参数值是off,咱们能够列出具体的error code,也能够选择all,mysql5.6及MySQL Cluster NDB 7.3以及后续版本增长了参数ddl_exist_errors,该参数包含一系列error code(1007,1008,1050,1051,1054,1060,1061,1068,1094,1146)
一些error code表明的错误以下:
1007:数据库已存在,建立数据库失败
1008:数据库不存在,删除数据库失败
1050:数据表已存在,建立数据表失败
1051:数据表不存在,删除数据表失败
1054:字段不存在,或程序文件跟数据库有冲突
1060:字段重复,致使没法插入
1061:重复键名
1068:定义了多个主键
1094:位置线程ID
1146:数据表缺失,请恢复数据库
1053:复制过程当中主服务器宕机
1062:主键冲突 Duplicate entry '%s' for key %d
#*** MyISAM 相关选项 ***#
key_buffer_size = 256M
#指定用于索引的缓冲区大小,增长它可获得更好的索引处理性能。若是是以InnoDB引擎为主的DB,专用于MyISAM引擎的 key_buffer_size 能够设置较小,8MB 已足够 若是是以MyISAM引擎为主,可设置较大,但不能超过4G. 在这里,强烈建议不使用MyISAM引擎,默认都是用InnoDB引擎.注意:该参数值设置的过大反而会是服务器总体效率下降!
sort_buffer_size = 2M
#查询排序时所能使用的缓冲区大小。排序缓冲被用来处理相似 ORDER BY 以及 GROUP BY 队列所引发的排序.一个用来替代的基于磁盘的合并分类会被使用.查看 “Sort_merge_passes” 状态变量. 在排序发生时由每一个线程分配 注意:该参数对应的分配内存是每链接独占!若是有 100 个链接,那么实际分配的总共排序缓冲区大小为 100 × 6 =600MB,因此,对于内存在 4GB 左右的服务器推荐设置为 6-8M。
read_buffer_size = 2M
#读查询操做所能使用的缓冲区大小。和 sort_buffer_size 同样,该参数对应的分配内存也是每链接独享!用来作 MyISAM 表全表扫描的缓冲大小.当全表扫描须要时,在对应线程中分配.
join_buffer_size = 8M
#联合查询操做所能使用的缓冲区大小,和 sort_buffer_size 同样,该参数对应的分配内存也是每链接独享!此缓冲被使用来优化全联合(full JOINs 不带索引的联合).相似的联合在极大多数状况下有很是糟糕的性能表现, 可是将此值设大可以减轻性能影响.经过 “Select_full_join”状态变量查看全联合的数量, 当全联合发生时,在每一个线程中分配。
read_rnd_buffer_size = 8M
#MyISAM 以索引扫描(Random Scan)方式扫描数据的 buffer大小
bulk_insert_buffer_size = 64M
#MyISAM 使用特殊的相似树的 cache 来使得突发插入(这些插入是,INSERT … SELECT, INSERT … VALUES (…), (…), …, 以及 LOAD DATAINFILE) 更快. 此变量限制每一个进程中缓冲树的字节数.设置为 0 会关闭此优化.为了最优化不要将此值设置大于 “key_buffer_size”.当突发插入被检测到时此缓冲将被分配MyISAM 用在块插入优化中的树缓冲区的大小。注释:这是一个 per thread 的限制 ( bulk 大量).此缓冲当 MySQL 须要在 REPAIR, OPTIMIZE, ALTER 以及 LOAD DATA INFILE到一个空表中引发重建索引时被分配.这在每一个线程中被分配.因此在设置大值时须要当心.
myisam_sort_buffer_size = 64M
#MyISAM 设置恢复表之时使用的缓冲区的尺寸,当在REPAIR TABLE 或用 CREATE INDEX 建立索引或 ALTER TABLE 过程当中排序 MyISAM 索引分配的缓冲区
myisam_max_sort_file_size = 10G
#mysql重建索引时容许使用的临时文件最大大小
myisam_repair_threads = 1
#若是该值大于 1,在 Repair by sorting 过程当中并行建立MyISAM 表索引(每一个索引在本身的线程内).若是一个表拥有超过一个索引, MyISAM 能够经过并行排序使用超过一个线程去修复他们.这对于拥有多个 CPU 以及大量内存状况的用户,是一个很好的选择.
myisam_recover = 64K
#容许的 GROUP_CONCAT()函数结果的最大长度
transaction_isolation = REPEATABLE-READ # 设定默认的事务隔离级别.可用的级别以下:READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ,SERIALIZABLE
1.READ UNCOMMITTED-读未提交 2.READ COMMITTE-读已提交 3.REPEATABLE READ -可重复读 4.SERIALIZABLE -串行
# *** INNODB 相关选项 ***#
skip-innodb
# 若是你的 MySQL 服务包含 InnoDB 支持可是并不打算使用的话,使用此选项会节省内存以及磁盘空间,而且加速某些部分
innodb_file_per_table = 1
# InnoDB为独立表空间模式,每一个数据库的每一个表都会生成一个数据空间
独立表空间优势:
1.每一个表都有自已独立的表空间。
2.每一个表的数据和索引都会存在自已的表空间中。
3.能够实现单表在不一样的数据库中移动。
4.空间能够回收(除drop table操做处,表空不能自已回收)
缺点:
1.单表增长过大,如超过100G
结论:
共享表空间在Insert操做上少有优点。其它都没独立表空间表现好。当启用独立表空间时,请合理调整:innodb_open_files
innodb_status_file = 1
#启用InnoDB的status file,便于管理员查看以及监控等
innodb_open_files = 2048
# 限制Innodb能打开的表的数据,若是库里的表特别多的状况,请增长这个。这个值默认是300
innodb_additional_mem_pool_size = 100M
#设置InnoDB存储引擎用来存放数据字典信息以及一些内部数据结构的内存空间大小,因此当咱们一个MySQL Instance中的数据库对象很是多的时候,是须要适当调整该参数的大小以确保全部数据都能存放在内存中提升访问效率的。
innodb_buffer_pool_size = 2G
#包括数据页、索引页、插入缓存、锁信息、自适应哈希因此、数据字典信息.InnoDB 使用一个缓冲池来保存索引和原始数据, 不像 MyISAM.这里你设置越大,你在存取表里面数据时所须要的磁盘 I/O 越少.在一个独立使用的数据库服务器上,你能够设置这个变量到服务器物理内存大小的 80%,不要设置过大,不然,因为物理内存的竞争可能致使操做系统的换页颠簸.注意在 32 位系统上你每一个进程可能被限制在 2-3.5G 用户层面内存限制,因此不要设置的过高.
innodb_write_io_threads = 4
innodb_read_io_threads = 4
# innodb使用后台线程处理数据页上的读写 I/O(输入输出)请求,根据你的 CPU 核数来更改,默认是4
# 注:这两个参数不支持动态改变,须要把该参数加入到my.cnf里,修改完后重启MySQL服务,容许值的范围从 1-64
innodb_data_home_dir = /usr/local/mysql/var/
#设置此选项若是你但愿 InnoDB 表空间文件被保存在其余分区.默认保存在 MySQL 的 datadir 中.
innodb_data_file_path = ibdata1:500M;ibdata2:2210M:autoextend
#InnoDB将数据保存在一个或者多个数据文件中成为表空间.若是你只有单个逻辑驱动保存你的数据,一个单个的自增文件就足够好了.其余状况下.每一个设备一个文件通常都是个好的选择.你也能够配置 InnoDB 来使用裸盘分区 – 请参考手册来获取更多相关内容
innodb_file_io_threads = 4
#用来同步 IO 操做的 IO 线程的数量. 此值在 Unix 下被硬编码为 4,可是在 Windows 磁盘 I/O 可能在一个大数值下表现的更好.
innodb_thread_concurrency = 16
#在 InnoDb 核心内的容许线程数量,InnoDB 试着在 InnoDB 内保持操做系统线程的数量少于或等于这个参数给出的限制,最优值依赖于应用程序,硬件以及操做系统的调度方式.太高的值可能致使线程的互斥颠簸.默认设置为 0,表示不限制并发数,这里推荐设置为0,更好去发挥CPU多核处理能力,提升并发量
innodb_flush_log_at_trx_commit = 1
#若是设置为 1 ,InnoDB 会在每次提交后刷新(fsync)事务日志到磁盘上,这提供了完整的 ACID 行为.若是你愿意对事务安全折衷, 而且你正在运行一个小的食物, 你能够设置此值到 0 或者 2 来减小由事务日志引发的磁盘 I/O
0 表明日志只大约每秒写入日志文件而且日志文件刷新到磁盘.
2 表明日志写入日志文件在每次提交后,可是日志文件只有大约每秒才会刷新到磁盘上.
innodb_log_buffer_size = 8M
#用来缓冲日志数据的缓冲区的大小.当此值快满时, InnoDB 将必须刷新数据到磁盘上.因为基本上每秒都会刷新一次,因此没有必要将此值设置的太大(甚至对于长事务而言)
innodb_log_file_size = 500M
#事物日志大小.在日志组中每一个日志文件的大小,你应该设置日志文件总合大小到你缓冲池大小的5%~100%,来避免在日志文件覆写上没必要要的缓冲池刷新行为.不论如何, 请注意一个大的日志文件大小会增长恢复进程所须要的时间.
innodb_log_files_in_group = 2
#在日志组中的文件总数.一般来讲 2~3 是比较好的.
innodb_log_group_home_dir = /usr/local/mysql/var/
# InnoDB 的日志文件所在位置. 默认是 MySQL 的 datadir.你能够将其指定到一个独立的硬盘上或者一个 RAID1 卷上来提升其性能innodb_max_dirty_pages_pct = 90 #innodb 主线程刷新缓存池中的数据,使脏数据比例小于 90%,这是一个软限制,不被保证绝对执行.
innodb_lock_wait_timeout = 50
#InnoDB 事务在被回滚以前能够等待一个锁定的超时秒数。InnoDB 在它本身的 锁定表中自动检测事务死锁而且回滚事务。 InnoDB 用 LOCK TABLES 语句注意到锁定设置。默认值是 50 秒
innodb_flush_method = O_DSYNC
# InnoDB 用来刷新日志的方法.表空间老是使用双重写入刷新方法.默认值是 “fdatasync”, 另外一个是 “O_DSYNC”.
innodb_force_recovery=1
# 若是你发现 InnoDB 表空间损坏, 设置此值为一个非零值可能帮助你导出你的表.从1 开始而且增长此值知道你可以成功的导出表.
innodb_fast_shutdown
# 加速 InnoDB 的关闭. 这会阻止 InnoDB 在关闭时作全清除以及插入缓冲合并.这可能极大增长关机时间, 可是取而代之的是 InnoDB 可能在下次启动时作这些操做.
# *** 其余 相关选项 ***#
[mysqldump]
quick
#支持较大数据库的转储,在导出很是巨大的表时须要此项。增长该变量的值十分安全,这是由于仅当须要时才会分配额外内存。例如,仅当你发出长查询或mysqld必须返回大的结果行时mysqld才会分配更多内存。该变量之因此取较小默认值是一种预防措施,以捕获客户端和服务器之间的错误信息包,并确保不会因偶然使用大的信息包而致使内存溢出。 若是你正是用大的BLOB值,并且未为mysqld授予为处理查询而访问足够内存的权限,也会遇到与大信息包有关的奇怪问题。若是怀疑出现了该状况,请尝试在mysqld_safe脚本开始增长ulimit -d 256000,并重启mysqld。
[mysql]
auto-rehash
#容许经过 TAB 键提示
default-character-set = utf8
#数据库字符集
connect-timeout = 3
[mysqld_safe]
open-files-limit = 8192 #增长每一个进程的可打开文件数量.确认你已经将全系统限制设定的足够高!打开大量表须要将此值设大