mysql中my.cnf 配置 日志类型及文件配置详解
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
default-authentication-plugin=mysql_native_password
bind-address=0.0.0.0
# 设置3306端口
port=3306
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#实现MySQL不区分大小。(发开需求-建议开启)
lower_case_table_names=1
##服务器一次能处理最大的查询包的值,也是服务器程序能够处理的最大查询
max_allowed_packet=512M
##MySQL选项可以避免外部锁定。True为开启。
external-locking=FALSE
##设置查询排序时所能使用的缓冲区大小,系统默认大小为2MB。注意:该参数对应的分配内存是每个连接独占的,如果有100个连接,那么实际分配的总排序缓冲区大小为100 x6=600MB。所以,对于内存在4GB左右的服务器来说,推荐将其设置为6MB~8MB
sort_buffer_size=1M
##table_cache指示表高速缓冲区的大小。当MySQL访问一个表时,如果在MySQL缓冲区还有空间,那么这个表就被打开并放入表缓冲区,这样做的好处是可以更快速地访问表中的内容。一般来说,可以查看数据库运行峰值时间的状态值Open_tables和Open_tables,用以判断是否需要增加table_cache的值,即如果Open_tables接近table_cache的时候,并且Opened_tables这个值在逐步增加,那就要考虑增加这个值的大小了
##table_cache=614K
##指定一个请求的最大连接时间,对于4GB左右内存的服务器来说,可以将其设置为5~10
wait_timeout=120
##MySQLd能打开文件的最大个数,如果出现too mant openfiles之类的就需要调整该值了
open_files_limit=1024
##避免MySQL的外部锁定,减少出错几率,增强稳定性。
#skip-locking
##联合查询操作所能使用的缓冲区大小,和sort_buffer_size一样,该参数对应的分配内存也是每个连接独享。
join_buffer_size=8M
#保存慢查询的配置
slow_query_log=on
##保存的文件
slow-query-log-file=slow.log
##时间超过1秒的查询算慢查询,设置长时间的界限
long_query_time=3
##记录没有使用索引的查询
##log-queries-not-using-indexes
##格式化查询语句
##log-long-format
##logbin数据库的操作日志,例如update、delete、create等都会存储到binlog日志,通过logbin可以实现增量恢复
log-bin=mysql-bin
##在一个事务中binlog为了记录sql状态所持有的cache大小,如果你经常使用大的,多声明的事务,可以增加此值来获取更大的性能,所有从事务来的状态都被缓冲在binlog缓冲中,然后再提交后一次性写入到binlog中,如果事务比此值大,会使用磁盘上的临时文件来替代,此缓冲在每个链接的事务第一次更新状态时被创建。
binlog_cache_size=4M
##最大的二进制Cache日志缓冲尺寸。
max_binlog_cache_size=4294967296
##二进制日志文件的最大长度(默认设置1GB)一个二进制文件信息超过了这个最大长度之前,MySQL服务器会自动提供一个新的二进制日志文件接续上。
max_binlog_size=1G
##超过7天的binlog,mysql程序自动删除(如果数据重要,建议不要开启该选项)
binlog_expire_logs_seconds=604800
#设置日志格式
binlog_format = mixed
#
##指定用于索引的缓冲区大小,增加它可得到更好的索引处理性能。对于内存在4GB左右的服务器来说,该参数可设置为256MB或384MB。注意:如果该参数值设置得过大反而会使服务器的整体效率降低!
key_buffer_size=256M
##读查询操作所能使用的缓冲区大小。和sort_buffer_size一样,该参数对应的分配内存也是每个连接独享。
read_buffer_size=4M
##设置进行随机读的时候所使用的缓冲区。此参数和read_buffer_size所设置的Buffer相反,一个是顺序读的时候使用,一个是随机读的时候使用。但是两者都是针对与线程的设置,每个线程都可以产生两种Buffer中的任何一个。默认值256KB,最大值4GB。
read_rnd_buffer_size=16M
##如果经常性的需要使用批量插入的特殊语句来插入数据,可以适当调整参数至16MB~32MB,建议8MB。
bulk_insert_buffer_size=8M
#用来设置InnoDB存储的数据目录信息和其他内部数据结构的内存池大小。应用程序里的表越多,你需要在这里面分配越多的内存。对于一个相对稳定的应用,这个参数的大小也是相对稳定的,也没有必要预留非常大的值。如果InnoDB用广了这个池内的内存,InnoDB开始从操作系统分配内存,并且往MySQL错误日志写警告信息。默认为1MB,当发现错误日志中已经有相关的警告信息时,就应该适当的增加该参数的大小。
##innodb_additional_mem_pool_size=4M
##InnoDB使用一个缓冲池来保存索引和原始数据,设置越大,在存取表里面数据时所需要的磁盘I/O越少。强烈建议不要武断地将InnoDB的Buffer Pool值配置为物理内存的50%~80%,应根据具体环境而定。
innodb_buffer_pool_size=4M
##设置配置一个可扩展大小的尺寸为128MB的单独文件,名为ibdata1.没有给出文件的位置,所以默认的是在MySQL的数据目录内。
##innodb_data_file_path=ibdata1:128M:autoextend
##InnoDB中的文件I/O线程。通常设置为4,如果是windows可以设置更大的值以提高磁盘I/O
##innodb_file_io_threads=4
##你的服务器有几个CPU就设置为几,建议用默认设置,一般设为8。
innodb_thread_concurrency=8
##设置为0就等于innodb_log_buffer_size队列满后在统一存储,默认为1,也是最安全的设置。
innodb_flush_log_at_trx_commit=1
##默认为1MB,通常设置为8~16MB就足够了。
innodb_log_buffer_size=2M
##确定日志文件的大小,更大的设置可以提高性能,但也会增加恢复数据库的时间。
innodb_log_file_size=32M
##为提高性能,MySQL可以以循环方式将日志文件写到多个文件。推荐设置为3。
innodb_log_files_in_group=3
##InnoDB主线程刷新缓存池中的数据。
innodb_max_dirty_pages_pct=90
##InnoDB事务被回滚之前可以等待一个锁定的超时秒数。InnoDB在它自己的锁定表中自动检测事务死锁并且回滚事务。InnoDB用locak tables 语句注意到锁定设置。默认值是50秒。
innodb_lock_wait_timeout=120
##InnoDB为独立表空间模式,每个数据库的每个表都会生成一个数据空间。0关闭,1开启。
innodb_file_per_table=0
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
#
[client]
# # 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
#
[mysqldump]
quick
# #设定在网络传输中一次消息传输量的最大值。系统默认值为1MB,最大值是1GB,必须设置为1024的倍数。单位为字节。
max_allowed_packet=2M

浙公网安备 33010602011771号