利用 tuning-primer.sh 工具可以实时查看当前mysql的运行情况并给出相应的设置参数。其下载地址:http://www.day32.com/MySQL/tuning-primer.sh运行后的结果为当前系统mysql的运行状态,他会给出相应的建议。


根据tuning-primer.sh的执行结果,所总结的必备参数

 

 

[client]
 
 
port = 3306
 
socket = /data/mysql/mysql.sock
 
[mysqld]
 
# MyISAM
 
# 关键词缓冲的大小, 一般用来缓冲MyISAM表的索引块.如果数据库使
#用的是MyISAM表,则建议设置为剩余内存的25-­33% 。
# 不要将其设置大于你可用内存的35%, 因为一部分内存同样被OS用来
#缓冲行数据甚至在你并不使用MyISAM 表的情况下, 你也需要仍旧设置
#起8-64M 内存由于它同样会被内部临时磁盘表使用.
key_buffer_size =256MB
 
# table cache 单位MB
 
# 1G内存以下设置为 256M,1-2G内存设置为 512M 这个参数与
#max_connections 参数互相影响,当增大max_connections值时有必要
#增加table_cache的值。另外table_cache选项在mysql中 对应的变量名
#为table_open_cache。也可以在my.cnf文件中使用 table_open_cache =
#256 来代替 table_cache = 256 通过查看 show status like opend_tables
 
table_cache = 256
 
# =================开启慢查询记录功能=======================
 
slow_query_log = 1
 
# 查询超过这个阀值就记录
 
long-query-time = 5
 
# 记录慢查询的日志文件
 
log-slow-queries = /data/mysqldata/slowquery.log
 
# ===========================================================
 
# ========= 设置二进制日志文件的保存时间 ==========
 
expire_logs_days = 5 # 自动删除5天之前的binlog文件
 
# =================================================
 
log-bin = /data/ats_db/mysql-bin
 
log-error = /data/ats_db/error.log
 
pid-file = /data/ats_db/mysql.pid
 
# ========= 针对Innodb引擎有关的配置 ============
 
# 指定表数据和索引存储的空间,可以是一个或者多个文件。最后
 
# 一个数据文件必须是自动扩充的,也只有最后一个文件允许自动
 
# 扩充。这样,当空间用完后,自动扩充数据文件就会自动增长(
 
# 以8MB为单位)以容纳额外的数据。例如:
 
# innodb_data_file_path=/disk1 /ibdata1:900M;/disk2/ibdata2:50M:autoextend
 
# 两个数据文件放在不同的磁盘上。数据首先放在ibdata1 中,当
 
# 达到900M以后,数据就放在ibdata2中。一旦达到50MB,ibdata2将
 
# 以8MB为单位自动增长。如果磁盘满了,需要在另外的磁盘上面增
 
# 加一个数据文件。
 
innodb_data_file_path = ibdata1:100M:autoextend
 
# innodb的缓冲区大小,用来存放数据和索引,Innodb在线的文档表示
 
# 要设置为机器内存的50%-80%来做这个缓冲区!这个可以说是Innodb
 
# 引擎下配置选项中最关键的参数选项了,对性能的影响也是最大的。
 
innodb_buffer_pool_size = 1024M
 
# 一般16M也够了,可以适当调整下
 
innodb_additional_mem_pool_size = 16M
 
# 25 % of buffer pool size
 
innodb_log_file_size = 256M
 
innodb_log_buffer_size = 16M
 
# Innodb日志提交的方式,0,1,2可供取值,0表示每间隔一秒就写一
 
# 次日志并进行同步,减少了硬盘写操作次数,可以提高性能,1表示每
 
# 执行完 COMMIT就写一次日志并进行同步,默认值,2表示每执行完
#一 次COMMIT写一次日志,每间隔一秒进行一次同步,这个参数在
#Innodb 里同样是关键参数,对性能影响较大。
 
innodb_flush_log_at_trx_commit = 1