mysql5.7配置文件
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,路径/etc/mysql/conf.d/my.cnf内容[client]default-character-set=utf8[mysql]default-character-set=utf8[mysq
千家信息网最后更新 2025年02月01日mysql5.7配置文件
路径
/etc/mysql/conf.d/my.cnf
内容
[client]default-character-set=utf8[mysql]default-character-set=utf8[mysqld]character-set-server=utf8pid-file = /var/run/mysqld/mysqld.pidsocket = /var/run/mysqld/mysqld.sockdatadir = /var/lib/mysql#log-error = /var/log/mysql/error.log#连接有效时长,默认是28800(8小时)wait_timeout=28800#表示表名是否大小写敏感,0-敏感;1-不敏感lower_case_table_names=1# 建议禁用符号链接,防止各类安全风险symbolic-links=0# 127.0.0.1 可以绑定ip地址或者仅允许本地访问,默认情况下我们只接受来自主机的连接#bind-address = 127.0.0.1# MySQL每打开一个表,都会读入一些数据到table_open_cache缓存中,当MySQL在这个缓存中找不到相应信息时,才会去磁盘上读取。默认值64table_open_cache = 128# 一个事务,在没有提交的时候,产生的日志,记录到Cache中;等到事务提交需要提交的时候,则把日志持久化到磁盘。默认binlog_cache_size大小32Kbinlog_cache_size = 1M# 定义了用户可以创建的内存表(memory table)的大小。这个值用来计算内存表的最大行数值。这个变量支持动态改变max_heap_table_size = 8M# MySQL的heap(堆积)表缓冲大小。所有联合在一个DML指令内完成,并且大多数联合甚至可以不用临时表即可以完成。tmp_table_size = 16M# MySQL读入缓冲区大小。对表进行顺序扫描的请求将分配一个读入缓冲区,MySQL会为它分配一段内存缓冲区。read_buffer_size变量控制这一缓冲区的大小。# 如果对表的顺序扫描请求非常频繁,并且你认为频繁扫描进行得太慢,可以通过增加该变量值以及内存缓冲区大小提高其性能#read_buffer_size = 2M# MySQL的随机读缓冲区大小。当按任意顺序读取行时(例如,按照排序顺序),将分配一个随机读缓存区。进行排序查询时,# MySQL会首先扫描一遍该缓冲,以避免磁盘搜索,提高查询速度,如果需要排序大量数据,可适当调高该值。但MySQL会为每个客户连接发放该缓冲空间,所以应尽量适当设置该值,以避免内存开销过大read_rnd_buffer_size = 8M# MySQL执行排序使用的缓冲大小。如果想要增加ORDER BY的速度,首先看是否可以让MySQL使用索引而不是额外的排序阶段。# 如果不能,可以尝试增加sort_buffer_size变量的大小sort_buffer_size = 8M# 联合查询操作所能使用的缓冲区大小,和sort_buffer_size一样,该参数对应的分配内存也是每连接独享join_buffer_size = 8M# 这个值(默认8)表示可以重新利用保存在缓存中线程的数量,当断开连接时如果缓存中还有空间,那么客户端的线程将被放到缓存中,# 如果线程重新被请求,那么请求将从缓存中读取,如果缓存中是空的或者是新的请求,那么这个线程将被重新创建,如果有很多新的线程,# 增加这个值可以改善系统性能.通过比较Connections和Threads_created状态的变量,可以看到这个变量的作用。(->表示要调整的值)# 根据物理内存设置规则如下:# 1G -> 8# 2G -> 16# 3G -> 32# 大于3G -> 64thread_cache_size = 16# MySQL的查询缓冲大小(从4.0.1开始,MySQL提供了查询缓冲机制)使用查询缓冲,MySQL将SELECT语句和查询结果存放在缓冲区中,# 今后对于同样的SELECT语句(区分大小写),将直接从缓冲区中读取结果。根据MySQL用户手册,使用查询缓冲最多可以达到238%的效率。# 通过检查状态值'Qcache_%',可以知道query_cache_size设置是否合理:如果Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够的情况,# 如果Qcache_hits的值也非常大,则表明查询缓冲使用非常频繁,此时需要增加缓冲大小;如果Qcache_hits的值不大,则表明你的查询重复率很低,# 这种情况下使用查询缓冲反而会影响效率,那么可以考虑不用查询缓冲。此外,在SELECT语句中加入SQL_NO_CACHE可以明确表示不使用查询缓冲query_cache_size = 64M# 指定用于索引的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写),到你能负担得起那样多。如果你使它太大,# 系统将开始换页并且真的变慢了。对于内存在4GB左右的服务器该参数可设置为384M或512M。通过检查状态值Key_read_requests和Key_reads,# 可以知道key_buffer_size设置是否合理。比例key_reads/key_read_requests应该尽可能的低,# 至少是1:100,1:1000更好(上述状态值可以使用SHOW STATUS LIKE 'key_read%'获得)。注意:该参数值设置的过大反而会是服务器整体效率降低#key_buffer_size = 4M# 超过30天的binlog删除expire_logs_days = 30max_connections=2000# 慢查询时间 超过1秒则为慢查询slow_query_log = 1long_query_time = 1slow_query_log_file = /var/log/mysql/mysql-slow.log# 限制Innodb能打开的表的数据,如果库里的表特别多的情况,请增加这个。这个值默认是300innodb_open_files = 500# InnoDB使用一个缓冲池来保存索引和原始数据, 不像MyISAM.# 这里你设置越大,你在存取表里面数据时所需要的磁盘I/O越少.# 在一个独立使用的数据库服务器上,你可以设置这个变量到服务器物理内存大小的80%# 不要设置过大,否则,由于物理内存的竞争可能导致操作系统的换页颠簸.# 注意在32位系统上你每个进程可能被限制在 2-3.5G 用户层面内存限制,# 所以不要设置的太高.innodb_buffer_pool_size = 64M# 使用5.7支持orderby 和去重同时存在,应该尽量避免这种设计# sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION# 0:如果innodb_flush_log_at_trx_commit的值为0,log buffer每秒就会被刷写日志文件到磁盘,提交事务的时候不做任何操作(执行是由mysql的master thread线程来执行的。# 主线程中每秒会将重做日志缓冲写入磁盘的重做日志文件(REDO LOG)中。不论事务是否已经提交)默认的日志文件是ib_logfile0,ib_logfile1# 1:当设为默认值1的时候,每次提交事务的时候,都会将log buffer刷写到日志。# 2:如果设为2,每次提交事务都会写日志,但并不会执行刷的操作。每秒定时会刷到日志文件。要注意的是,并不能保证100%每秒一定都会刷到磁盘,这要取决于进程的调度。# 每次事务提交的时候将数据写入事务日志,而这里的写入仅是调用了文件系统的写入操作,而文件系统是有 缓存的,所以这个写入并不能保证数据已经写入到物理磁盘# 默认值1是为了保证完整的ACID。当然,你可以将这个配置项设为1以外的值来换取更高的性能,但是在系统崩溃的时候,你将会丢失1秒的数据。# 设为0的话,mysqld进程崩溃的时候,就会丢失最后1秒的事务。设为2,只有在操作系统崩溃或者断电的时候才会丢失最后1秒的数据。InnoDB在做恢复的时候会忽略这个值。# 总结# 设为1当然是最安全的,但性能页是最差的(相对其他两个参数而言,但不是不能接受)。如果对数据一致性和完整性要求不高,完全可以设为2,如果只最求性能,例如高并发写的日志服务器,设为0来获得更高性能innodb_flush_log_at_trx_commit = 0# 此参数确定些日志文件所用的内存大小,以M为单位。缓冲区更大能提高性能,但意外的故障将会丢失数据。MySQL开发人员建议设置为1-8M之间innodb_log_buffer_size = 2Mquery_cache_type=2# 服务器发送和接受的最大包长度max_allowed_packet=64M# MySQL支持4种事务隔离级别,他们分别是:# READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE.# 如没有指定,MySQL默认采用的是REPEATABLE-READ,ORACLE默认的是READ-COMMITTEDtransaction_isolation = REPEATABLE-READ# 强制InnoDB恢复,该选项通常只在存在数据文件异常需要强制恢复时开户#innodb_force_recovery = 1# 关闭默认更新时间字段explicit_defaults_for_timestamp=true# 设置北京时区#default-time_zone = '+8:00'
缓冲
大小
查询
数据
内存
日志
缓冲区
事务
时候
文件
磁盘
系统
缓存
线程
变量
性能
服务器
服务
参数
排序
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
rda数据库
股票 投资 合作 软件开发
服务器计算机管理
上海大数据软件开发收费报价表
合肥市哪里招软件开发人员
中专网络技术基础ppt
服务器终端和分段
软件开发常用技术与框架交流
魔兽怀旧服服务器出售时间
qq ip数据库
根据需求设计数据库的例子
台州塑胶零件加工管理软件开发
公安机关加强网络安全保护措施
潮州数字软件开发厂家直销
软件开发要下什么软件
直销软件开发怎么选
服务器禁用用户密码登陆
京东服务器机房在哪里
数据库监听未能启动
东城网络安全总部
网络安全交易主题手抄报
数据库及其建立过程课件
select分组显示数据库
深圳市格瓦斯网络技术有限公司
苏州电脑软件开发培训
福田靠谱的网络安全服务
小学校园网络安全等级评定自查
dns服务器不一样可以共享吗
手机网贷APP软件开发
怎么绕过网络安全系统