MySQL服务器参数配置

一、获取MySQL配置信息路径

1、命令行参数:mysqld_safe --datadir=/data/sql_data

2、配置文件(在不同的系统中默认配置文件的都区位置不同):

mysqld --help --verbose | grep -A 1 'Default options'

/etc/my.cnf  /etc/mysql/my.cnf  /home/mysql/my.cnf~/.my.cnf (Contos默认读取路径)

二、MySQL配置参数的作用域(MySQL程序中)

1、全局参数

set global 参数名=参数值;

set @@global.参数名:=参数值;

2、会话参数

set [session] 参数名=参数值;

set @@session.参数名:=参数值;

三、内存配置相关参数

1、确定可以使用的内存上限

2、确定MySQL的每个连接使用的内存

sort_buffer_size

join_buffer_size

read_buffer_size

read_rnd_buffer_size

3、确定需要为操作系统保留多少内存

4、如何为缓存池分配内存

Innodb_buffer_pool_size      //Innodb引擎

总内存-(每个线程所需要的内存*连接数)-系统保留内存

key_buffer_size      //MyISAM引擎

四、I/O相关配置参数

1、Innodb I/O相关配置

Innodb_log_file_size    //配置单个事务日志大小

Innodb_log_files_in_group    //配置事务日志的个数

事务日志总大小=Innodb_log_file_size * Innodb_log_files_in_group

Innodb_log_buffer_size        //日志缓冲区大小(不需要设置太大32M~128M)

Innodb_flush_log_at_trx_commit    //事务日志的刷新频率

0:每秒进行一次log写入cache,并flush log 到磁盘

1(默认):在每次事务提交执行log写入cache,并flush log 到磁盘

2(建议):每次事务提交,执行log数据写入到cache,每秒执行一次flush log到磁盘

Innodb_flush_method=O_DIRECT    //数据文件、日志文件与文件系统的交互方式

Innodb_file_per_table = 1  //如何使用表空间(强烈建议1,独立空间)

Innodb_doublewrite = 1  //是否使用双写缓存

2、MyISAM I/O相关配置

delay_key_write      //关键字缓冲中的脏块什么时候缓存到磁盘

OFF:每次写操作后刷新键缓冲中的脏块到磁盘

ON:只对在建表时指定了delay_key_write选项的表使用延迟刷新

ALL:对所有MyISAM表都是用延迟键写入

五、安全相关配置参数

expire_logs_days          //指定自动清理binlog的天数

max_allowed_packet    //控制MySQL可以接收的包的大小(32M)

skip_name_resolve      //禁用DNS查找

sysdate_is_now            //确保sysdate()返回确定性日期

read_only    //禁止非super权限的用户写入权限(建议从库中使用)

skip_slave_start    //禁用Slave自动恢复(建议从库中使用)

sql_mode            //设置MySQL所使用的SQL模式

strict_trans_tables

no_engine_subtitution

no_zero_date

no_zero_in_date

only_full_group_by

六、其他配置参数

sync_binlog    //控制MySQL如何向磁盘刷新binlog(主DB 建议为1)

tmp_table_size 和max_heap_table_size  //控制内存临时表大小

max_connections    //允许的最大链接数

你可能感兴趣的:(MySQL服务器参数配置)