您的位置:首页 > 数据库 > MariaDB

mysql-mariadb实践中用到的配置(不断完善中)

2016-12-09 17:16 295 查看
#基本配置
port=3306
pid-file=/mnt/mysql/data/mysql.pid
socket=/tmp/mysql.sock
datadir=/data/mysql/data
skip-name-resolve #跳过dns解析
character_set_server=utf8
default_storage_engine=InnoDB #默认库的存储引擎
default_table_type=InnoDB #默认表的存储引擎
wait_timeout=60 #sleep状态超时时间
max_connections=2000 #最大连接数
max_connect_errors=1000 #最大错误连接数
#日志相关的配置
log_error=/mnt/mysql/data/err.log
slow_query_log=ON
slow_query_log_file=/mnt/mysql/data/slow.log
long_query_time=1 #记录超过1s的慢查询
bin_log=mysql-bin #开启二进制日志格式
binlog_format=statement #二进制日志记录格式
expire_logs_days=7 #设置二进制日志保留的时间
#主从场景从库相关配置
log_slave_updates #在从库开启二进制日志
relay-log=relay-bin
skip_slave_start #重启mysql后,不自动启动复制
relay-log-purge #重放完中继日志后将此中继日志删除
read_only #设置从库为只读,除了root和sql复制线程
innodb_locks_unsafe_for_binlog=1 #禁止二进制日志的记录
#优化相关的配置
max_allow_packet=1G
innodb_file_per_table=1 #为每张表使用一个表文件,存储格式为“表名.ibd”
innodb_data_file_path=ibdata1:10M;ibdata2:100M:autoextend #单独指定数据文件的路径与大小,并且自增长
innodb_data_home_dir=/data/mysql #数据文件的存放位置,此目录必须存在
sync_binlog=0 #由操作系统决定什么时候刷新缓存到持久化设备
innodb_flush_method=O_DIRECT #使用fsync()来刷新文件到操作系统,但会通知操作系统不缓存数据
innodb_buffer_pool_size=20G #设置innodb缓冲池大小,建议为物理内存的80%左右
innodb_log_buffer_size=8M #设置日志缓冲大小
innodb_log_file_size=100M #设置事务日志文件(日志文件是操作系统内存)大小,此参数可有效提高性能innodb_log_files_in_group=3 #设置事务日志个数,日志文件总大小是每个文件的大小之和innodb_flush_log_at_trx_commit=2 #每秒刷新一次日志文件到持久化存储,当系统断电会丢失一秒的数据,但性能是最高的
innodb_thread_concurrency=8 #并发限制,限制一次性可以有多少线程进入内核,0表示不限制,thread_concurrency应设为CPU核数的2倍
innodb_thread_sleep_delay=10000 #当线程超过并发限制时,需要等待的时间,单位为微秒
innodb_fast_shutdown=0 #在关闭数据库时的一种操作,是最慢的一种关闭方式,但在恢复时是最快的
innodb_max_dirty_pages_pct=10 #设置innodb缓冲池中可以保持的最大'脏页'数,其值是一个百分比
query_cache_type=on #开启查询缓存,除非证明有效,否则不建议开启此参数
query_cache_size=10M #查询缓存,一次性分配并初始化这块内存
sort_buffer_size=2M #排序缓存,只有在查询需要做排序操作时才会为该缓存分配内存,一旦需要则分配全部内存
table_cache_size=10 #可以缓存的表个数
thread_cache_size=10 #线程池缓冲的线程个数,可以通过Threads_connected来个数进行设置
open_files_limit=65535 #设置可以打开文件句柄个数,尽可能的要大

#不理解的相关参数
innodb_file_per_table=1和innodb_data_file_path之间的关系是什么?
innodb_locks_unsafe_for_binlog=1:禁止二进制日志有什么用?跟bin_log参数是否有冲突?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  配置 mysql