|
| 1 | + |
| 2 | +# 适用于 Mysql 5.6 |
| 3 | +# 该配置适合 1G 内存左右的机子,储存类型为 InnoDB |
| 4 | +# 官网配置说明:http://dev.mysql.com/doc/refman/5.6/en/mysqld-option-tables.html |
| 5 | +# 官网状态值说明:http://dev.mysql.com/doc/refman/5.6/en/server-status-variables.html |
| 6 | +# 官网环境变量说明:http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html |
| 7 | +# 在线生成配置工具:http://tools.percona.com(只是起到一个参考作用,生成的配置文件里面的参数名有的是用符号:-,而官网是用:_,所以这个也要注意改掉。) |
| 8 | +# 资料参考:https://blog.linuxeye.com/379.html |
| 9 | +# 注释内容为注释行下面的配置的解释 |
| 10 | +# 这是一个综合配置,不是单独为主库或是从库考虑 |
| 11 | + |
| 12 | +# ============================================================================================================ |
| 13 | + |
| 14 | + |
| 15 | +# 客户端设置 |
| 16 | +[mysql] |
| 17 | +port = 3306 |
| 18 | +socket = /usr/program/mysql/data/mysql.sock |
| 19 | +default-character-set = utf8 |
| 20 | + |
| 21 | +# ============================================================================================================ |
| 22 | + |
| 23 | + |
| 24 | +# 服务端设置 |
| 25 | +[mysqld] |
| 26 | +user = mysql |
| 27 | +port = 3306 |
| 28 | +default-storage-engine = InnoDB |
| 29 | +socket = /usr/program/mysql/data/mysql.sock |
| 30 | +pid-file = /usr/program/mysql/data/mysql.pid |
| 31 | + |
| 32 | +collation-server = utf8_unicode_ci |
| 33 | +init_connect = 'SET NAMES utf8' |
| 34 | +character-set-server = utf8 |
| 35 | +basedir = /usr/program/mysql |
| 36 | +datadir = /usr/program/mysql/data |
| 37 | +log-error = /usr/program/mysql/data/mysql-error.log |
| 38 | + |
| 39 | +# (重点修改)表示是本机的序号为1,一般配合设置主从的时候一定要修改的地方 |
| 40 | +server-id = 1 |
| 41 | + |
| 42 | + |
| 43 | + |
| 44 | +# back_log 值指出在 MySQL 暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。如果 MySQL 的连接数据达到 max_connections 时,新来的请求将会被存在堆栈中,以等待某一连接释放资源,该堆栈的数量即 back_log,如果等待连接的数量超过 back_log,将不被授予连接资源。 |
| 45 | +# 另外,这值(back_log)限于您的操作系统对到来的 TCP/IP 连接的侦听队列的大小。你的操作系统在这个队列大小上有它自己的限制(可以检查你的 OS 文档找出这个变量的最大值),试图设定 back_log 高于你的操作系统的限制将是无效的。 |
| 46 | +back_log = 512 |
| 47 | + |
| 48 | +# MySQL 的最大并发连接数 |
| 49 | +max_connections = 1000 |
| 50 | +# 网络传输中一次小心传输量的最大值(最大值为 1G);增加该变量的值十分安全,这是因为仅当需要时才会分配额外内存。例如,仅当你发出长查询或 MySQL 必须返回大的结果行时 MySQL 才会分配更多内存。该变量之所以取较小默认值是一种预防措施,以捕获客户端和服务器之间的错误信息包,并确保不会因偶然使用大的信息包而导致内存溢出。 |
| 51 | +max_allowed_packet = 16M |
| 52 | +# 对于同一主机,如果有超出该参数值个数的中断错误连接,则该主机将被禁止连接。如需对该主机进行解禁,执行 Mysql 命令:FLUSH HOST。 |
| 53 | +max_connect_errors = 1000000 |
| 54 | +# 禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求 |
| 55 | +skip-name-resolve |
| 56 | +# MySQL打开的文件描述符限制 |
| 57 | +open_files_limit = 65535 |
| 58 | +# MySQL 每打开一个表,都会读入一些数据到 table_open_cache 缓存中,当 MySQL 在这个缓存中找不到相应信息时,才会去磁盘上读取。默认值 400,最大值:524288。假定系统有 200 个并发连接,则需将此参数设置为 200*N (N 为每个连接所需的文件描述符数目);当把 table_open_cache 设置为很大时,如果系统处理不了那么多文件描述符,那么就会出现客户端失效,连接不上 |
| 59 | +table_open_cache = 2048 |
| 60 | + |
| 61 | +# 一个事务,在没有提交的时候,产生的日志,记录到 Cache 中;等到事务提交需要提交的时候,则把日志持久化到磁盘。默认 binlog_cache_size 大小32K |
| 62 | +binlog_cache_size = 1M |
| 63 | +# 定义了用户可以创建的内存表(memory table)的大小。这个值用来计算内存表的最大行数值。这个变量支持动态改变 |
| 64 | +max_heap_table_size = 32M |
| 65 | +# MySQL的heap(堆积)表缓冲大小。如果超过该值,则会将临时表写入磁盘。其范围值:1KB~4GB |
| 66 | +tmp_table_size = 32M |
| 67 | + |
| 68 | +# MySQL读入缓冲区大小。该参数对应的分配内存也是每连接独享,所以,如果有100连接,那占用的内存是:100X2M=200M,所以4G内存的服务器,建议该值是6~8M |
| 69 | +read_buffer_size = 2M |
| 70 | +# MySQL的随机读缓冲区大小。 |
| 71 | +read_rnd_buffer_size = 8M |
| 72 | +# MySQL执行排序使用的缓冲大小。该参数对应的分配内存也是每连接独享,所以,如果有100连接,那占用的内存是:100X2M=200M,所以4G内存的服务器,建议该值是6~8M |
| 73 | +sort_buffer_size = 2M |
| 74 | +# 联合查询操作所能使用的缓冲区大小,和sort_buffer_size一样,该参数对应的分配内存也是每连接独享,所以,如果有100连接,那占用的内存是:100X4M=400M,所以4G内存的服务器,建议该值是6~8M |
| 75 | +join_buffer_size = 4M |
| 76 | +# 指定用于索引的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写),对于4GB内存的服务器,该参数可以设置为:256M或384M |
| 77 | +key_buffer_size = 64M |
| 78 | +# 这个值(默认8)表示可以重新利用保存在缓存中线程的数量,当断开连接时如果缓存中还有空间,那么客户端的线程将被放到缓存中, |
| 79 | +# 根据物理内存设置规则如下: |
| 80 | +# 1G —> 8 |
| 81 | +# 2G —> 16 |
| 82 | +# 3G —> 32 |
| 83 | +# 大于3G —> 64 |
| 84 | +thread_cache_size = 8 |
| 85 | + |
| 86 | +# 每个线程的堆栈大小,值范围:128K ~ 4GB,默认是192KB |
| 87 | +thread_stack = 256k |
| 88 | + |
| 89 | +# 0是关闭高速缓存,1是开启高速缓存 |
| 90 | +query_cache_type = 0 |
| 91 | +# 查询缓冲区的大小,如果是4G内存建议设置为64M。具体设置值还要根据运行环境来判断,你可以执行这个SQL语句:show status like 'Qcache%'; |
| 92 | +# 从SQL语句查询的结果中,查看Qcache_lowmem_prunes的值非常大表示查询缓冲不够,你应该增加该设置值 |
| 93 | +query_cache_size = 0 |
| 94 | +query_cache_limit = 2M |
| 95 | + |
| 96 | +# 分词词汇最小长度,默认4 |
| 97 | +ft_min_word_len = 4 |
| 98 | + |
| 99 | +log-bin = /usr/program/mysql/data/mysql-bin |
| 100 | +binlog-format = mixed |
| 101 | +expire_logs_days = 30 |
| 102 | +# 该参数的说明:http://blog.csdn.net/wulantian/article/details/9965905 |
| 103 | +sync_binlog = 1 |
| 104 | + |
| 105 | +# 是否开启慢查询记录,1表示开启,0表示关闭,如果是主从环境下,主库不要开启,从库开启 |
| 106 | +slow_query_log = 0 |
| 107 | +# 慢查询时间 超过3秒则为慢查询 |
| 108 | +long_query_time = 3 |
| 109 | +slow_query_log_file = /usr/program/mysql/data/mysql-slow.log |
| 110 | + |
| 111 | +performance_schema = 0 |
| 112 | +# 改参数的说明:http://www.cnblogs.com/digdeep/p/4727715.html |
| 113 | +explicit_defaults_for_timestamp = true |
| 114 | + |
| 115 | +# 数据库库名/表名是否区分大小写,0:区分大小写,1:不区分大小写 |
| 116 | +lower_case_table_names = 1 |
| 117 | + |
| 118 | +# MySQL选项以避免外部锁定,减少出错几率,增强稳定性 |
| 119 | +skip_external_locking |
| 120 | + |
| 121 | + |
| 122 | +# 在网络上不允许TCP/IP连接到MySQL。所有到MySQL的连接必须经由Unix socket进行。如果要允许TCP/IP连接,则注释当前行即可 |
| 123 | +# skip-networking |
| 124 | + |
| 125 | + |
| 126 | +table_definition_cache = 1024 |
| 127 | + |
| 128 | +# 该设置值取值为:服务器机子的逻辑CPU数量X2,比如你的服务器机子是 Linux 系统你可以执行:grep 'processor' /proc/cpuinfo | sort -u | wc -l,可以查看到逻辑CPU数量值,比如我取到的值是24,那我这里应该设置为:24X2=48 |
| 129 | +thread_concurrency = 2 |
| 130 | + |
| 131 | +# 强制为 innodb类型 |
| 132 | +innodb = FORCE |
| 133 | +innodb_file_per_table = 1 |
| 134 | +# 限制Innodb能打开的表的数据,如果库里的表特别多的情况,请增加这个。这个值默认是300 |
| 135 | +innodb_open_files = 500 |
| 136 | +# InnoDB使用一个缓冲池来保存索引和原始数据, 不像MyISAM. |
| 137 | +# 这里你设置越大,你在存取表里面数据时所需要的磁盘I/O越少. |
| 138 | +# 在一个独立使用的数据库服务器上,你可以设置这个变量到服务器物理内存大小的70%左右 |
| 139 | +# 不要设置过大,否则,由于物理内存的竞争可能导致操作系统的换页颠簸. |
| 140 | +innodb_buffer_pool_size = 592M |
| 141 | + |
| 142 | +# innodb使用后台线程处理数据页上的读写 I/O(输入输出)请求,根据你的 CPU 核数来更改,默认是4 |
| 143 | +# 注:这两个参数不支持动态改变,需要把该参数加入到my.cnf里,修改完后重启MySQL服务,允许值的范围从 1-64 |
| 144 | +innodb_write_io_threads = 4 |
| 145 | +innodb_read_io_threads = 4 |
| 146 | + |
| 147 | +# 默认设置为 0,表示不限制并发数,这里推荐设置为0,更好去发挥CPU多核处理能力,提高并发量 |
| 148 | +innodb_thread_concurrency = 0 |
| 149 | +innodb_purge_threads = 1 |
| 150 | +innodb_flush_log_at_trx_commit = 1 |
| 151 | +innodb_log_buffer_size = 2M |
| 152 | +innodb_log_file_size = 64M |
| 153 | +innodb_log_files_in_group = 3 |
| 154 | +innodb_max_dirty_pages_pct = 90 |
| 155 | +innodb_lock_wait_timeout = 120 |
| 156 | +innodb_additional_mem_pool_size = 2M |
| 157 | +innodb_flush_method = O_DIRECT |
| 158 | +bulk_insert_buffer_size = 8M |
| 159 | +# 用于设置在 REPAIR TABLE 和 CREATE INDEX 创建索引或 ALTER TABLE 的过程中排序索引所分配的缓冲区大小,可设置范围:4MB~4GB,默认8MB,4G内存的服务器可以设置为32M~64M |
| 160 | +myisam_sort_buffer_size = 8M |
| 161 | +# 32位系统默认值是2147483648=2G,64位系统,默认值是9223372036854775807,单位是bytes. |
| 162 | +myisam_max_sort_file_size = 2147483648 |
| 163 | +myisam_repair_threads = 1 |
| 164 | + |
| 165 | +# 服务器关闭交互式连接前等待活动的秒数。单位秒 |
| 166 | +interactive_timeout = 28800 |
| 167 | +# 服务器关闭非交互连接之前等待活动的秒数。单位秒。通过show processlist命令查看当前系统的连接状态,如果发现有大量的sleep状态的连接进程,则说明该参数设置的过大。默认值:28800 |
| 168 | +wait_timeout = 3600 |
| 169 | + |
| 170 | +# ============================================================================================================ |
| 171 | + |
| 172 | +[mysqldump] |
| 173 | +quick |
| 174 | +# 服务器发送和接受的最大包长度 |
| 175 | +max_allowed_packet = 16M |
| 176 | + |
| 177 | +[myisamchk] |
| 178 | +key_buffer_size = 8M |
| 179 | +sort_buffer_size = 8M |
| 180 | +read_buffer = 4M |
| 181 | +write_buffer = 4M |
0 commit comments