mysql数据库配置文件my-default.ini的参数说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
mysql数据库配置⽂件my-default.ini的参数说明
[client]
port = 3306 # 设置mysql客户端连接服务端时默认使⽤的端⼝
[mysql]
default-character-set=utf8 # 设置mysql客户端默认字符集
#以下都是服务端参数
[mysqld]
port=3306 # mysql服务端默认监听(listen on)的TCP/IP端⼝
basedir="C:/Program Files/MySQL/MySQL Server 5.5/" # 基准路径,其他路径都相对于这个路径
datadir="C:/Program Files/MySQL/MySQL Server 5.5/Data" # mysql数据库⽂件所在⽬录
character-set-server=latin1 # 服务端使⽤的字符集默认为8⽐特编码的latin1字符集
default-storage-engine=INNODB # 创建新表时将使⽤的默认存储引擎
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" # SQL模式为strict模式
max_connections=100 # mysql服务器⽀持的最⼤并发连接数(⽤户数)。
但总会预留其中的⼀个连接给管理员使⽤超级权限登录,即使连接数⽬达到最⼤限制。
如果设置得过⼩⽽⽤户⽐较多,会经常出现“Too many connections”错误。
query_cache_size=0 # 查询缓存⼤⼩,⽤于缓存SELECT查询结果。
如果有许多返回相同查询结果的SELECT查询,并且很少改变表,可以设置query_cache_size⼤于0,可以极⼤改善查询效率。
⽽如果表数据频繁变化,就不要使⽤这个,会适得其反
table_cache=256 # 这个参数在5.1.3之后的版本中叫做table_open_cache,⽤于设置table⾼速缓存的数量。
由于每个客户端连接都会⾄少访问⼀个表,因此此参数的值与max_connections有关。
当某⼀连接访问⼀个表时,MySQL会检查当前已缓存表的数量。
如果该表已经在缓存中打开,则会直接访问缓存中的表已加快查询速度;如果该表未被缓存,则会将当前的表添加进缓存并进⾏查询。
在执⾏缓存操作之前,table_cache⽤于限制缓存表的最⼤数⽬:如果当前已经缓存的表未达到
table_cache,则会将新表添加进来;若已经达到此值,MySQL将根据缓存表的最后查询时间、查询率等规则释放之前的缓存。
tmp_table_size=34M # 内存中的每个临时表允许的最⼤⼤⼩。
如果临时表⼤⼩超过该值,临时表将⾃动转为基于磁盘的表(Disk Based Table)。
thread_cache_size=8 # 缓存的最⼤线程数。
当客户端连接断开时,如果客户端总连接数⼩于该值,则处理客户端任务的线程放回缓存。
在⾼并发情况下,如果该值设置得太⼩,就会有很多线程频繁创建,线程创建的开销会变⼤,查询效率也会下降。
⼀般来说如果在应⽤端有良好的多线程处理,这个参数对性能不会有太⼤的提⾼。
# MyISAM相关参数
myisam_max_sort_file_size=100G # mysql重建索引时允许使⽤的临时⽂件最⼤⼤⼩
myisam_sort_buffer_size=68M
key_buffer_size=54M # Key Buffer⼤⼩,⽤于缓存MyISAM表的索引块。
决定数据库索引处理的速度(尤
其是索引读)
read_buffer_size=64K # ⽤于对MyISAM表全表扫描时使⽤的缓冲区⼤⼩。
针对每个线程进⾏分配(前提是进⾏了全表扫描)。
进⾏排序查询时,MySql会⾸先扫描⼀遍该缓冲,以避免磁盘搜索,提⾼查询速度,如果需要排序⼤量数据,可适当调⾼该值。
但MySql会为每个客户连接发放该缓冲空间,所以应尽量适当设置该值,以避免内存开销过⼤。
read_rnd_buffer_size=256K
sort_buffer_size=256K # connection级参数(为每个线程配置),500个线程将消耗500*256K的sort_buffer_size。
# InnoDB相关参数
innodb_additional_mem_pool_size=3M # InnoDB⽤于存储元数据信息的内存池⼤⼩,⼀般不需修改
innodb_flush_log_at_trx_commit =1 # 事务相关参数,如果值为1,则InnoDB在每次commit都会将事务⽇志写⼊磁盘(磁盘IO 消耗较⼤),这样保证了完全的ACID特性。
⽽如果设置为0,则表⽰事务⽇志写⼊内存log和内存log写⼊磁盘的频率都为1次/秒。
如果设为2则表⽰事务⽇志在每次commit都写⼊内存log,但内存log写⼊磁盘的频率为1次/秒。
innodb_log_buffer_size=2M # InnoDB⽇志数据缓冲⼤⼩,如果缓冲满了,就会将缓冲中的⽇志数据写⼊磁盘(flush)。
由于⼀般⾄少都1秒钟会写⼀次磁盘,所以没必要设置过⼤,即使是长事务。
innodb_buffer_pool_size=105M # InnoDB使⽤缓冲池来缓存索引和⾏数据。
该值设置的越⼤,则磁盘IO越少。
⼀般将该值设为物理内存的80%。
innodb_log_file_size=53M # 每⼀个InnoDB事务⽇志的⼤⼩。
⼀般设为innodb_buffer_pool_size的25%到100%
innodb_thread_concurrency=9 # InnoDB内核最⼤并发线程数
#mysql⽇志:
# 错误⽇志: log-error --记录⼀系列发⽣错误的事件,可以在这⾥查询mysql出错的原因
# 查询⽇志: log --记录所有的查询语句
# 慢查询⽇志: slow_query_log --记录所有查询时间慢于某个值(long_query_time)的查询事件
# ⼆进制⽇志: log_bin --记录所有更新和删除的语句,通常⽤于数据库崩溃后启⽤备份数据库时,运⾏他,让备份的数据库恢复到崩溃前的状态
log_output=FILE #不启⽤的话慢⽇志查询会存在数据表中
general_log=on
general_log_file=E:/mysql-5.6.25/logs/query.log
#慢查询⽇志
slow_query_log=on
long_query_time =2 #慢于2秒的会被记录
slow_query_log_file=E:/mysql-5.6.25/logs/slowquery.log
log_bin=E:/mysql-5.6.25/logs/binlog/mysql-bin.log
log_bin_index=E:/mysql-5.6.25/logs/binlog/binlog#⽬录路径必须提前创建好,否则报错
log_error=E:/mysql-5.6.25/logs/err.log。