[client] |
|
客户端设置(当前为客户端默认参数) |
port |
3306 |
默认连接端口为3306 |
socket |
/tmp/mysql.sock |
本地连接的socket套接字 |
default_character_set |
utf8 |
设置字符集,通常使用utf8 |
[mysqld_safe] |
|
mysqld_safe是服务器端工具,用于启动mysqld,也是mysqld的守护进程。当mysql被kill时,mysqld_safe负责重启启动它。 |
open_files_limit |
8192 |
此为MySQL打开的文件描述符限制,它是MySQL中的一个全局变量且不可动态修改。它控制着mysqld进程能使用的最大文件描述符数量。默认最小值为1024。需要注意的是这个变量的值并不一定是你在这里设置的值,mysqld会在系统允许的情况下尽量取最大值。当open_files_limit没有被配置时,比较max_connections5和ulimit -n的值,取最大值。当open_file_limit被配置时,比较open_files_limit和max_connections5的值,取最大值 |
user |
mysql |
用户名 |
log-error |
error.log |
错误log记录文件 |
[mysqld] |
|
服务端基本配置 |
port |
3306 |
mysqld服务端监听端口 |
socket |
/tmp/mysql.sock |
MySQL客户端程序和服务器之间的本地通讯指定一个套接字文件 |
max_allowed_packet |
16M |
允许最大接收数据包的大小,防止服务器发送过大的数据包。当发出长查询或mysqld返回较大结果时,mysqld才会分配内存,所以增大这个值风险不大,默认16M,也可以根据需求改大,但太大会有溢出风险。取较小值是一种安全措施,避免偶然出现但大数据包导致内存溢出。 |
default_storage_engine |
InnoDB |
创建数据表时,默认使用的存储引擎。这个变量还可以通过–default-table-type进行设置 |
max_connections |
512 |
最大连接数,当前服务器允许多少并发连接。默认为100,一般设置为小于1000即可。太高会导致内存占用过多,MySQL服务器会卡死。作为参考,小型站设置100-300 |
max_user_connections |
50 |
用户最大的连接数,默认值为50 一般使用默认即可。 |
thread_cache_size |
64 |
线程缓存,用于缓存空闲的线程。这个数表示可重新使用保存在缓存中的线程数,当对方断开连接时,如果缓存还有空间,那么客户端的线程就会被放到缓存中,以便提高系统性能。我们可根据物理内存来对这个值进行设置,对应规则 1G 为 8;2G 为 16;3G 为 32;4G 为 64 等。 |
query_cache_type |
1 |
设置为0时,则禁用查询缓存(尽管仍分配query_cache_size个字节的缓冲区)。设置为1时,除非指定SQL_NO_CACHE,否则所有SELECT查询都将被缓存。设置为2时,则仅缓存带有SQL CACHE子句的查询。请注意,如果在禁用查询缓存的情况下启动服务器,则无法在运行时启用服务器。 |
query_cache_size |
64M |
缓存select语句和结果集大小的参数。查询缓存会存储一个select查询的文本与被传送到客户端的相应结果。如果之后接收到一个相同的查询,服务器会从查询缓存中检索结果,而不是再次分析和执行这个同样的查询。如果你的环境中写操作很少,读操作频繁,那么打开query_cache_type=1,会对性能有明显提升。如果写操作频繁,则应该关闭它(query_cache_type=0)。 |
sort_buffer_size |
2M |
排序缓冲区的大小。增加这个值加速ORDER BY或GROUP BY操作。 |
join_buffer_size |
128K |
联接缓冲区大小。增加这个值加速联接查询。 |
table_definition_cache |
400 |
这个参数控制着可以同时打开的.frm文件数,即表描述符缓存大小,默认为1400。增大该值可以减少打开表的时间。但设置太高会导致mysqld占用过多内存。 |
table_open_cache |
400 |
这个参数控制着可以同时打开的表缓存数,默认为400。增大该值可以提高性能,但设置太高会导致mysqld占用过多内存。 |
log_error |
error.log |
记录启动,运行或停止 mysqld 时出现的问题的日志文件 |
log_warnings |
2 |
日志记录级别,默认为1。可选值:1(记录错误和关键的警告)、2(记录错误、警告和信息性消息)、3(记录错误、警告、信息和调试消息) |
slow_query_log |
1 |
是否记录慢查询,默认不开启。可选值:1(开启)、0(关闭) |
slow_query_log_file |
slow.log |
慢查询日志文件 |
long_query_time |
0.5 |
日志记录的慢查询阈值,单位秒。超过这个时间将记录到慢查询日志中。 |
log_queries_not_using_indexes |
1 |
是否记录未使用索引的查询,默认不记录。可选值:1(开启)、0(关闭) |
min_examined_row_limit |
100 |
未使用索引的查询最小检查行数,超过这个数值将会记录日志。默认为0,表示不限制。 |
general_log_file |
general.log |
普通查询日志文件,记录执行过的所有SQL语句,默认关闭 |
general_log |
0 |
是否开启普通查询日志,可选值:1(开启)、0(关闭),默认关闭 |
server_id |
42 |
服务器唯一ID,主从复制需要配置,范围1-232。每个ID必须不同。 |
log_bin |
mysql-bin |
二进制日志文件前缀 |
binlog_cache_size |
1M |
二进制日志缓存大小,非事务性表的增删改的数据,先存到这个缓存中,再定期写入二进制日志中。可以加速事务提交及增删改的速度,但需要消耗一些内存。 |
max_binlog_size |
128M |
单个二进制文件的最大大小,达到后会自动滚动生成新的二进制日志文件。可以通过expire_logs_days限制日志总大小。 |
sync_binlog |
0 |
二进制日志同步模式,可选值:0 - 根据binlog_format的值判断是否同步;1 - 强制同步;N - 每N次事件同步一次 |
expire_logs_days |
5 |
二进制日志自动删除/过期的天数。过期日志将被purge线程自动删除。0表示不自动删除。 |
binlog_format |
ROW |
二进制日志格式,可选值:STATEMENT、ROW、MIXED。建议使用ROW。 |
binlog_row_image |
MINIMAL |
二进制日志存储行图像的格式。FULL保存完整的行数据;MINIMAL只保存被修改的列及所需的其它列。MINIMAL可以减少日志量,节省IO开销。 |
key_buffer_size |
8M |
MyISAM引擎索引缓存区大小。增大可获取更好的索引处理性能,特别是对于读密集的应用,但会占用更多内存。一般设置为物理内存的15-25%。 |
innodb_buffer_pool_size |
128M |
InnoDB存储引擎表数据缓存区大小,对于InnoDB来说,是最重要的参数之一。默认为8M,通常设置为实例物理内存的50-80%,最大不要超过物理内存的80%。 |
innodb_log_file_size |
48M |
Redo log文件大小,建议设置为innodb_buffer_pool_size的1/4到1/2。 |
innodb_log_buffer_size |
8M |
Redo log buffer大小,用于写入redo log的内存缓冲区大小。 |
max_heap_table_size |
32M |
内存临时表最大大小。MYSQL会在需要时自动将大表或结果集放到磁盘上,已避免内存耗尽。默认为16M,可以根据需要调大,但不要超过物理内存的50%。 |
tmp_table_size |
32M |
内存临时表大小,默认32M。MYSQL在需要时也会自动将大表或结果集放到磁盘上,以避免内存耗尽。可根据需要调大,但不要超过物理内存的50%。 |
innodb_file_per_table |
1 |
是否给每个InnoDB表分配独立的表空间文件。启用这个参数,可以减少表空间碎片,提高存储利用率。默认为0,即所有表共享一个系统表空间ibdata1文件。 |
innodb_flush_log_at_trx_commit |
1 |
决定了事务提交时刷新日志到磁盘的频率。建议保持默认值1,以获得完全的事务安全性。 |
innodb_flush_method |
O_DIRECT |
InnoDB刷新数据文件和日志文件到磁盘的方法。建议使用O_DIRECT避免进行双写入。 |
skip_name_resolve |
1 |
是否跳过DNS解析。设置为1可以加速新连接的建立,但无法使用主机名连接MYSQL。 |
slave_compressed_protocol |
1 |
是否压缩主从复制通信协议的数据流。开启可以减少网络开销。 |
sync_master_info |
10000 |
主从同步的master信息写入间隔,默认10000(10秒)。缩短这个时间可以减少主从同步中断时丢失的二进制日志量,但会增加一些IO消耗。 |
sync_relay_log |
10000 |
中继日志同步到磁盘的时间间隔,默认10000(10秒)。缩短这个时间可以减少主从中断时丢失的中继日志量,但会增加IO消耗。 |
sync_relay_log_info |
10000 |
中继日志信息同步到磁盘的时间间隔,默认10000(10秒)。 |