一、获取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 //允许的最大链接数