Mysql数据库基本配置建议



如下是数据库安装后的基本配置规范,提取了配置中最最通用的部分,给出数据库最基本的配置要求,且给出的参数是脱离应用,不会由于参数调整引起crash的,请大家回贴多多拍砖!

一.mysql配置文件my.cnf参考:

[mysqld]

#通用配置部分

port  = 端口

socket = mysql_path/var/mysql.sock

table_cache = 512

thread_cache = 30

max_connections = 500

back_log = 400

max_connect_errors = 1000

thread_concurrency = 8

log-error=ecomdb-err.log

log-slow-queries = ecomdb-slow.log

long_query_time =1

mysql 4.1以上开启

#log-queries-not-using-indexes

若是主库,则开启binlog

#log-bin=ecomdb-master-bin

建议配置部分(若需结合应用寻求更多帮助,直接回贴问石展~~~~)

若使用innodb请开启如下配置

#innodb_buffer_pool_size = (内存的50%-80%,建议保守设置)

#innodb_additional_mem_pool_size = 100M

#innodb_log_file_size = 100M

#innodb_log_buffer_size = 16M

2.重要配置选项说明:

(1) 最大连接数

Max_connections为允许的并行客户端最大连接数,为避免连接数溢出引起连接拒绝,调大此值至500:

Max_connections = 500

(2) 最大错误连接数

Max_connect_errors为最大错误连接数,默认为10,当由于密码错误等原因引起与数据库和客户端中断超过该数目,则阻塞后面的连接。建议调大为1000:

Max_connect_errors = 1000

(3) 表缓存

table_cache为所有线程打开的表数目的缓存,增大该值可以增加mysqld需要的文件描述符的数量,建议调至512:

table_cache = 512

(4) 线程缓存

thread_cache为数据库端的线程缓存。如果新连接很多,可以增加该变量以提高性能。此参数和应用对数据库的连接数关系较大,一般比数据库的正常连接数稍大即可,可以考虑设置为30:

thread_cache = 30

(5) back_log

当主MySQL线程在短时间内得到许多连接请求时发挥作用。主线程需要花一些时间(尽管很少)来检查连接并启动一个新线程。back_log值说明 MySQL临时停止响应新请求前在短时间内可以堆起多少请求,可以考虑调整为400:

back_log = 400

(6) 慢查询日志

如下配置将时间超过 long_query_time(秒) 的慢查询记录到适当命名的慢查询日志文件中,以方便进行数据库优化,超时时间建议为1秒,此项必须开启。

log-slow-queries = ecomdb-slow.log



long_query_time =1

mysql 4.1以上开启,可记录未使用索引的sql

#log-queries-not-using-indexes

(7) 二进制日志

对于主库,需开启二进制日志,在灾难恢复及数据库同步时使用:

log-bin=sfdbwsz-master-bin

(8) 错误日志

将数据库严重错误时的信息写入指定文件名的日志文件中,数据库故障时需首先查看这些日志:

log-error=ecomdb-err.log

标签: mysql

相关文章

评论已关闭