可配置变量: mysqld --verbose --help 显示服务器选项和可配置变量一览,从配置文件[mysqld][server]组读取信息。可配参数可以在启动命令中指定,也可以在指定的配置文件中配置。
全局变量 全局变量可以通过SET命令设置,也可以在启动mysql时,在指定的文件中配置
my.cnf配置解析 my.cnf中的配置,都分有各个模块,例如:[mysqld] [client] [mysqladmin]等等。各个模块下的参数指令都各自属于本身的模块,和其他模块相称于隔离。而my.cnf这个配置文件,会被差别的进程所引用处理,例如:mysqld 、 mysqladmin 等等。假如mysqld引入了my.cnf这个配置文件,它只会读取[mysqld]模块下的全部参数指令,不会搭理其他模块下的。 但有破例,就是上面两个命令 !include 和 !includedir。不管他们两个参数指令,放在my.cnf中的哪一个模块下,任何地方,都会被处理。而新引入的文件中,假如有[mysqld]模块参数指令,就会再添加,没有则什么都不做。!includedir 表现包罗指定路径的文件 和 !includedir 指定的这个路径下面的配置文件 [code]#*** client options 相关选项 开始***# #以下选项会被MySQL客户端应用读取。留意只有MySQL附带的客户端应用程序包管可以读取这段内容。假如你想你本身的MySQL应用程序获取这些值。需要在MySQL客户端库初始化的时间指定这些选项。 [client] port = 3309 socket = /usr/local/mysql/tmp/mysql.sock #*** client options 相关选项 竣事***# #*** mysqld options 相关选项 开始***# [mysqld] #包罗的配置文件 ,把用户名,密码文件单独存放 !include /usr/local/mysql/etc/mysqld.cnf port = 3309 bind-address = 0.0.0.0 #表现是本机的序号为1,唯一 server-id = 1 socket = /usr/local/mysql/tmp/mysql.sock pid-file = /usr/local/mysql/var/mysql.pid basedir = /usr/local/mysql/ datadir = /usr/local/mysql/var/ #此目次被 MySQL用来保存暂时文件.例如,它被用来处理基于磁盘的大型排序,和内部排序一样,以及简单的暂时表.假如你不创建非常大的暂时文件,将其放置到 swapfs/tmpfs 文件系统上也许比较好。另一种选择是你也可以将其放置在独立的磁盘上.你可以利用”;”来放置多个路径,他们会按照 roud-robin 方法被轮询利用. tmpdir = /usr/local/mysql/tmp/ #当 slave 实行 load data infile 时用 slave-load-tmpdir = /usr/local/mysql/tmp/ #*** skip options 相关选项 ***# #克制 MySQL 对外部毗连进行 DNS 解析,利用这一选项可以消除 MySQL 进行 DNS 解析的时间。但需要留意,假如开启该选项,则全部长途主机毗连授权都要利用 IP 地址方式,否则 MySQL 将无法正常处理毗连请求! skip-name-resolve #不能利用毗连文件,多个客户可能会访问同一个数据库,因此这防止外部客户锁定 MySQL 服务器。 该选项默认开启 skip-symbolic-links #不利用系统锁定,要利用 myisamchk,必须关闭服务器 ,避免 MySQL的外部锁定,淘汰出错几率加强稳固性。 skip-external-locking #启动 mysql,不启动复制 skip-slave-start #开启该选项可以彻底关闭 MySQL 的 TCP/IP 毗连方式,假如 WEB 服务器是以长途毗连的方式访问 MySQL 数据库服务器则不要开启该选项!否则将无法正常毗连! 假如全部的进程都是在同一台服务器毗连到本地的 mysqld, 如许设置将是加强安全的方法 skip-networking #把SYSDATE 函数编程为 NOW的别名 sysdate-is-now = 1 #*** 系统资源相关选项 ***# #接受队列,对于没创建 tcp 毗连的请求队列放入缓存中,队列巨细为 back_log,受限定与 OS 参数,试图设定 back_log 高于你的利用系统的限定将是无效的。默认值为 50。对于 Linux 系统推荐设置为小于512的整数。假如系统在一个短时间内有很多毗连,则需要增大该参数的值 back_log = 50 #指定MySQL允许的最大毗连进程数。假如在访问数据库时经常出现"Too Many Connections"的错误提 示,则需要增大该参数值。 max_connections = 1000 #假如某个用户发起的毗连 error 超过该数值,则该用户的下次毗连将被壅闭,直到管理员实行 flush hosts ; 命令大概服务重启, 防止黑客 , 非法的密码以及其他在链接时的错误会增加此值 max_connect_errors = 10000 # MySQL打开的文件描述符限定,默认最小1024;当open_files_limit没有被配置的时间,比较max_connections*5和ulimit-n的值,哪个大用哪个,当open_file_limit被配置的时间,比较open_files_limit和max_connections*5的值,哪个大用哪个。 open_files_limit = 10240 #毗连超时之前的最大秒数,在 Linux 平台上,该超时也用作等待服务器首次回应的时间 connect-timeout = 10 #等待关闭毗连的时间 wait-timeout = 28800 #关闭毗连之前,允许 interactive_timeout(取代了wait_timeout)秒的不运动时间。客户端的会话 wait_timeout 变量被设为会话interactive_timeout 变量的值。假如前端程序采用短毗连,建议收缩这2个值, 假如前端程序采用长毗连,可直接注释掉这两个选项,默认配置(8小时) interactive-timeout = 28800 #从服务器也能够处理网络毗连停止。但是,只有从服务器超过slave_net_timeout 秒没有从主服务器收到数据才关照网络停止 slave-net-timeout = 600 #从服务器读取信息的超时 net_read_timeout = 30 #从服务器写入信息的超时 net_write_timeout = 60 #假如某个通信端口的读利用停止了,在放弃前重试多次 net_retry_count = 10 #包消息缓冲区初始化为 net_buffer_length 字节,但需要时可以增长到 max_allowed_packet 字节 net_buffer_length = 16384 # 服务所能处理的请求包的最大巨细以及服务所能处理的最大的请求巨细(当与大的BLOB 字段一起工作时相称须要), 每个毗连独立的巨细.巨细动态增加。 设置最大包,限定server接受的数据包巨细,避免超长SQL的实行有问题 默认值为16M,当MySQL客户端或mysqld 服务器收到大于 max_allowed_packet 字节的信息包时,将发出“信息包过大”错误,并关闭毗连。对于某些客户端,假如通信信息包过大,在实行查询期间,可能会遇到“丢失与 MySQL 服务器的毗连”错误。默认值 16M。 max_allowed_packet = 64M # 全部线程所打开表的数量. 增加此值就增加了mysqld所需要的文件描述符的数量如许你需要确认在[mysqld_safe]中 “open-files-limit” 变量设置打开文件数量允许至少4096 table_cache = 512 # 线程利用的堆巨细. 此容量的内存在每次毗连时被预留.MySQL 本身常不会需要超过 64K 的内存假如你利用你本身的需要大量堆的 UDF 函数大概你的利用系统对于某些利用需要更多的堆,你也许需要将其设置的更高一点.默认设置足以满足大多数应用 thread_stack = 192K # 我们在 cache 中保留多少线程用于重用.当一个客户端断开毗连后,假如 cache 中的线程还少于 thread_cache_size,则客户端线程被放入 cache 中.这可以在你需要大量新毗连的时间极大的淘汰线程创建的开销(一样平常来说假如你有好的线程模子的话, 这不会有显着的性能提升.)服务器线程缓存这个值表现可以重新利用保存在缓存中线程的数量,当断开毗连时假如缓存中另有空间,那么客户端的线程将被放到缓存中,假如线程重新被请求,那么请求将从缓存中读取,假如缓存中是空的大概是新的请求,那么这个线程将被重新创建, 假如有很多新的线程,增加这个值可以改善系统性能.通过比较 Connections 和 Threads_created 状态的变量,可以看到这个变量的作用 根据物理内存设置规则如下: 1G —> 8 2G —> 16 3G —> 32 大于3G —> 64 thread_cache_size = 20 # 此允许应用程序给予线程系统一个提示在同一时间给予渴望被运行的线程的数量.该参数取值为服务器逻辑CPU数量×2,在本例中,服务器有 2 颗物理CPU,而每颗物理CPU又支持H.T超线程,所以实际取值为 4 × 2 = 8.设置 thread_concurrency的值的正确与否, 对 mysql 的性能影响很大, 在多个 cpu(或多核)的情况下,错误设置了 thread_concurrency 的值, 会导致 mysql 不能充实利用多 cpu(或多核),出现同一时候只能一个 cpu(或核)在工作的情况。 thread_concurrency 应设为 CPU 核数的 2 倍.比如有一个双核的 CPU, 那么 thread_concurrency 的应该为 4; 2 个双核的 cpu,thread_concurrency 的值应为 8,属重点优化参数 thread_concurrency = 8 #*** qcache settings 相关选项 ***# # 不缓存查询大于该值的效果.只有小于此设定值的效果才会被缓冲, 此设置用来保护查询缓冲,防止一个极大的效果集将其他全部的查询效果都覆盖. query_cache_limit = 2M # 查询缓存分配的最小块巨细.默认是 4KB,设置值大对大数据查询有好处,但假如你的查询都是小数据查询,就轻易造成内存碎片和浪费 查询缓存碎片率 = Qcache_free_blocks / Qcache_total_blocks * 100% 假如查询缓存碎片率超过 20%,可以用 FLUSH QUERY CACHE 整理缓存碎片,大概试试减小query_cache_min_res_unit,假如你的查询都是小数据量的话。 查询缓存利用率 = (query_cache_size – Qcache_free_memory) / query_cache_size *100% 查询缓存利用率在 25%以下的话分析 query_cache_size 设置的过大,可得当减小;查询缓存利用率在 80%以上而且 Qcache_lowmem_prunes > 50 的话分析 query_cache_size 可能有点小,要不就是碎片太多。 查询缓存命中率 = (Qcache_hits – Qcache_inserts) / Qcache_hits * 100% query_cache_min_res_unit = 2K #指定 MySQL 查询缓冲区的巨细。可以通过在 MySQL 控制台实行以下命令观察: 代码: > SHOW VARIABLES LIKE '%query_cache%'; > SHOW STATUS LIKE 'Qcache%';假如 Qcache_lowmem_prunes 的值非常大,则表明经常出现缓冲不敷的情况; 假如 Qcache_hits 的值非常大,则表明查询缓冲利用非常频繁,假如该值较小反而会影响服从,那么可以考虑不用查询缓冲; Qcache_free_blocks,假如该值非常大,则表明缓冲区中碎片很多。 memlock # 假如你的系统支持 memlock() 函数,你也许希望打开此选项用以让运行中的 mysql 在在内存高度 告急的时间,数据在内存中保持锁定而且防止可能被 swapping out,此选项对于性能有益 query_cache_size = 64M #*** default settings 相关选项 ***# # 当创建新表时作为默认利用的表范例,假如在创建表现没有特殊实行表范例,将会利用此值 default_table_type = InnoDB #服务器时区 default-time-zone = system #server 级别字符集 character-set-server = utf8 #默认存储引擎 default-storage-engine = InnoDB #*** tmp && heap settings 相关选项 ***# # 暂时表的最大巨细,假如超过该值,则效果放到磁盘中,此限定是针对单个表的,而不是总和. tmp_table_size = 512M #独立的内存表所允许的最大容量.此选项为了防止意外创建一个超大的内存表导致永尽全部的内存资源. max_heap_table_size = 512M #*** log settings 相关选项 ***# # 打开二进制日记功能.在复制(replication)配置中,作为 MASTER 主服务器必须打开此项.假如你需要从你末了的备份中做基于时间点的恢复,你也同样需要二进制日记.这些路径相对于 datadir log-bin = mysql-bin #表现slave将复制事件写进本身的二进制日记 log_slave_updates = 1 #二进制的索引文件名 log-bin-index = mysql-bin.index # 定义relay_log的位置和名称,假如值为空,则默认位置在数据文件的目次,文件名为host_name-relay-bin.nnnnnn(By default, relay log file names have the form host_name-relay-bin.nnnnnn in the data directory); relay-log = relay-log #relay-log的索引文件名 relay_log_index = relay-log.index # 将警告打印输出到错误 log 文件.假如你对于MySQL有任何问题,你应该打开警告 log 而且仔细检察错误日记,查出可能的原因. log-warnings = 1 #错误日记路径 log-error = /usr/local/mysql/log/mysql.err #参数 log_output 指定了慢查询输出的格式,默认为 FILE,你可以将它设为 TABLE,然后就可以查询 mysql 架构下的 slow_log 表了 log_output = FILE #指定是否开启慢查询日记(该参数要被slow_query_log取代,做兼容性保留) log_slow_queries # 指定是否开启慢查询日记. 慢查询是指消耗了比 “long_query_time” 定义的更多时间的查询.假如 log_long_format 被打开,那些没有利用索引的查询也会被记载.假如你经常增加新查询到已有的系统内的话. 一样平常来说这是一个好主意, slow_query_log = 1 # 设定慢查询的阀值,超出次设定值的SQL即被记载到慢查询日记,缺省值为10s.全部的利用了比这个时间(以秒为单元)更多的查询会被认为是慢速查询.不要在这里利用”1″, 否则会导致全部的查询,甚至非常快的查询页被记载下来(由于MySQL 目前时间的正确度只能达到秒的级别). long-query-time = 1 # 在慢速日记中记载更多的信息.一样平常此项最好打开,打开此项会记载使得那些没有利用索引的查询也被作为到慢速查询附加到慢速日记里 log_long_format # 指定慢日记文件存放位置,可以为空,系统会给一个缺省的文件host_name-slow.log slow_query_log_file = /usr/local/mysql/log/slow.log #假如运行的SQL语句没有利用索引,则mysql数据库同样会将这条SQL语句记载到慢查询日记文件中。 log-queries-not-using-indexes #记载那些由于查找了多余1000次而引发的慢查询 min_examined_row_limit=1000 #记载那些慢的optimize table,analyze table和alter table语句 long-slow-admin-statements #记载由Slave所产生的慢查询 log-slow-slave-statements #将全部到达MySQL Server的SQL语句记载下来,默认关闭 general_log = 1 #general_log路径 general_log_file = /usr/local/mysql/log/mysql.log # 假如二进制日记写入的内容超出给定值,日记就会发生滚动。你不能将该变量设置为大于1GB或小于4096字节。 默认值是1GB。假如你正利用大的事务,二进制日记还会超过max_binlog_size max_binlog_size = 1G # 标志relaylog允许的最大值,假如该值为0,则默认值为max_binlog_size(1G);假如不为0,则max_relay_log_size则为最大的relay_log文件巨细; max_relay_log_size = 1G #是否主动清空不再需要中继日记时。默认值为1(启用) relay-log-purge = 1 #超过 30 天的 binlog 删除 expire_logs_days = 30 # 在一个事务中 binlog 为了记载 SQL 状态所持有的 cache 巨细,假如你经常利用大的,多声明的事务,你可以增加此值来获取更大的性能.全部从事务来的状态都将被缓冲在 binlog 缓冲中然后在提交后一次性写入到 binlog 中,假如事务比此值大, 会利用磁盘上的暂时文件来替代.此缓冲在每个毗连的事务第一次更新状态时被创建.session 级别 binlog_cache_size = 1M #复制时忽略数据库及表 replicate-wild-ignore-table = mysql.% #定义复制过程中从服务器可以主动跳过的错误号,当复制过程中遇到定义的错误号,就可以主动跳过,直接实行后面的SQL语句。 slave_skip_errors选项有四个可用值,分别为:off,all,ErorCode,ddl_exist_errors。 默认情况下该参数值是off,我们可以列出具体的error code,也可以选择all,mysql5.6及MySQL Cluster NDB 7.3以及后续版本增加了参数ddl_exist_errors,该参数包罗一系列error code(1007,1008,1050,1051,1054,1060,1061,1068,1094,1146) 一些error code代表的错误如下: 1007:数据库已存在,创建数据库失败 1008:数据库不存在,删除数据库失败 1050:数据表已存在,创建数据表失败 1051:数据表不存在,删除数据表失败 1054:字段不存在,或程序文件跟数据库有辩说 1060:字段重复,导致无法插入 1061:重复键名 1068:定义了多个主键 1094:位置线程ID 1146:数据表缺失,请恢复数据库 1053:复制过程中主服务器宕机 1062:主键辩说 Duplicate entry '%s' for key %d slave_skip_errors=all #*** MyISAM 相关选项 ***# # 指定用于索引的缓冲区巨细,增加它可得到更好的索引处理性能。假如是以InnoDB引擎为主的DB,专用于MyISAM引擎的 key_buffer_size 可以设置较小,8MB 已充足 假如是以MyISAM引擎为主,可设置较大,但不能超过4G. 在这里,强烈建议不利用MyISAM引擎,默认都是用InnoDB引擎.留意:该参数值设置的过大反而会是服务器整体服从低落! key_buffer_size = 256M # 查询排序时所能利用的缓冲区巨细。排序缓冲被用来处理类似 ORDER BY 以及 GROUP BY 队列所引起的排序.一个用来替代的基于磁盘的归并分类会被利用.查看 “Sort_merge_passes” 状态变量. 在排序发生时由每个线程分配 留意:该参数对应的分配内存是每毗连独占!假如有 100 个毗连,那么实际分配的总共排序缓冲区巨细为 100 × 6 =600MB,所以,对于内存在 4GB 左右的服务器推荐设置为 6-8M。 sort_buffer_size = 2M # 读查询利用所能利用的缓冲区巨细。和 sort_buffer_size 一样,该参数对应的分配内存也是每毗连独享!用来做 MyISAM 表全表扫描的缓冲巨细.当全表扫描需要时,在对应线程中分配. read_buffer_size = 2M # 联合查询利用所能利用的缓冲区巨细,和 sort_buffer_size 一样,该参数对应的分配内存也是每毗连独享!此缓冲被利用来优化全联合(full JOINs 不带索引的联合).类似的联合在极大多数情况下有非常糟糕的性能表现, 但是将此值设大能够减轻性能影响.通过 “Select_full_join”状态变量查看全联合的数量, 当全联合发生时,在每个线程中分配。 join_buffer_size = 8M # MyISAM 以索引扫描(Random Scan)方式扫描数据的 buffer巨细 read_rnd_buffer_size = 8M # MyISAM 利用特殊的类似树的 cache 来使得突发插入(这些插入是,INSERT … SELECT, INSERT … VALUES (…), (…), …, 以及 LOAD DATAINFILE) 更快. 此变量限定每个进程中缓冲树的字节数.设置为 0 会关闭此优化.为了最优化不要将此值设置大于 “key_buffer_size”.当突发插入被检测到时此缓冲将被分配MyISAM 用在块插入优化中的树缓冲区的巨细。注释:这是一个 per thread 的限定 ( bulk 大量).此缓冲当 MySQL 需要在 REPAIR, OPTIMIZE, ALTER 以及 LOAD DATA INFILE到一个空表中引起重建索引时被分配.这在每个线程中被分配.所以在设置大值时需要警惕. bulk_insert_buffer_size = 64M # MyISAM 设置恢复表之时利用的缓冲区的尺寸,当在REPAIR TABLE 或用 CREATE INDEX 创建索引或 ALTER TABLE 过程中排序 MyISAM 索引分配的缓冲区 myisam_sort_buffer_size = 64M #mysql重建索引时允许利用的暂时文件最大巨细 myisam_max_sort_file_size = 10G #假如该值大于 1,在 Repair by sorting 过程中并行创建MyISAM 表索引(每个索引在本身的线程内).假如一个表拥有超过一个索引, MyISAM 可以通过并行排序利用超过一个线程去修复他们.这对于拥有多个 CPU 以及大量内存情况的用户,是一个很好的选择. myisam_repair_threads = 1 #允许的 GROUP_CONCAT()函数效果的最大长度 transaction_isolation = REPEATABLE-READ # 设定默认的事务隔离级别.可用的级别如下:READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ,SERIALIZABLE 1.READ UNCOMMITTED-读未提交 2.READ COMMITTE-读已提交 3.REPEATABLE READ -可重复读 4.SERIALIZABLE -串行 myisam_recover = 64K # *** INNODB 相关选项 ***# # 假如你的 MySQL 服务包罗 InnoDB 支持但是并不打算利用的话,利用此选项会节省内存以及磁盘空间,而且加速某些部分 skip-innodb # InnoDB为独立表空间模式,每个数据库的每个表都会生成一个数据空间 独立表空间优点: 1.每个表都有自已独立的表空间。 2.每个表的数据和索引都会存在自已的表空间中。 3.可以实现单表在差别的数据库中移动。 4.空间可以接纳(除drop table利用处,表空不能自制接纳) 缺点: 1.单表增加过大,如超过100G 结论: 共享表空间在Insert利用上少有优势。其它都没独立表空间表现好。当启用独立表空间时,请合理调解:innodb_open_files innodb_file_per_table = 1 #启用InnoDB的status file,便于管理员查看以及监控等 innodb_status_file = 1 # 限定Innodb能打开的表的数据,假如库里的表特殊多的情况,请增加这个。这个值默认是300 innodb_open_files = 2048 #设置InnoDB存储引擎用来存放数据字典信息以及一些内部数据结构的内存空间巨细,所以当我们一个MySQL Instance中的数据库对象非常多的时间,是需要得当调解该参数的巨细以确保全部数据都能存放在内存中提高访问服从的。 innodb_additional_mem_pool_size = 100M #包罗数据页、索引页、插入缓存、锁信息、自顺应哈希所以、数据字典信息.InnoDB 利用一个缓冲池来保存索引和原始数据, 不像 MyISAM.这里你设置越大,你在存取表内里数据时所需要的磁盘 I/O 越少.在一个独立利用的数据库服务器上,你可以设置这个变量到服务器物理内存巨细的 80%,不要设置过大,否则,由于物理内存的竞争可能导致利用系统的换页颠簸.留意在 32 位系统上你每个进程可能被限定在 2-3.5G 用户层面内存限定,所以不要设置的太高. innodb_buffer_pool_size = 2G # innodb利用后台线程处理数据页上的读写 I/O(输入输出)请求,根据你的 CPU 核数来更改,默认是4 # 注:这两个参数不支持动态改变,需要把该参数参加到my.cnf里,修改完后重启MySQL服务,允许值的范围从 1-64 innodb_write_io_threads = 4 innodb_read_io_threads = 4 #设置此选项假如你希望 InnoDB 表空间文件被保存在其他分区.默认保存在 MySQL 的 datadir 中. innodb_data_home_dir = /usr/local/mysql/var/ #InnoDB将数据保存在一个大概多个数据文件中成为表空间.假如你只有单个逻辑驱动保存你的数据,一个单个的自增文件就充足好了.其他情况下.每个装备一个文件一样平常都是个好的选择.你也可以配置 InnoDB 来利用裸盘分区 – 请参考手册来获取更多相关内容 innodb_data_file_path = ibdata1:500M;ibdata2:2210M:autoextend #用来同步 IO 利用的 IO 线程的数量. 此值在 Unix 下被硬编码为 4,但是在 Windows 磁盘 I/O 可能在一个大数值下表现的更好. innodb_file_io_threads = 4 #在 InnoDb 核心内的允许线程数量,InnoDB 试着在 InnoDB 内保持利用系统线程的数量少于或即是这个参数给出的限定,最优值依赖于应用程序,硬件以及利用系统的调度方式.过高的值可能导致线程的互斥颠簸.默认设置为 0,表现不限定并发数,这里推荐设置为0,更好去发挥CPU多核处理本领,提高并发量 innodb_thread_concurrency = 16 #假如设置为 1 ,InnoDB 会在每次提交后刷新(fsync)事务日记到磁盘上,这提供了完备的 ACID 行为.假如你愿意对事务安全折衷, 而且你正在运行一个小的食品, 你可以设置此值到 0 大概 2 来淘汰由事务日记引起的磁盘 I/O 代表日记只大约每秒写入日记文件而且日记文件刷新到磁盘. 代表日记写入日记文件在每次提交后,但是日记文件只有大约每秒才会刷新到磁盘上. innodb_flush_log_at_trx_commit = 1 #用来缓冲日记数据的缓冲区的巨细.当此值快满时, InnoDB 将必须刷新数据到磁盘上.由于根本上每秒都会刷新一次,所以没有须要将此值设置的太大(甚至对于长事务而言) innodb_log_buffer_size = 8M #事物日记巨细.在日记组中每个日记文件的巨细,你应该设置日记文件总合巨细到你缓冲池巨细的5%~100%,来避免在日记文件覆写上不须要的缓冲池刷新行为.不论如何, 请留意一个大的日记文件巨细会增加恢复进程所需要的时间. innodb_log_file_size = 500M #在日记组中的文件总数.通常来说 2~3 是比较好的. innodb_log_files_in_group = 2 # InnoDB 的日记文件地点位置. 默认是 MySQL 的 datadir.你可以将其指定到一个独立的硬盘上大概一个 RAID1 卷上来提高其性能innodb_max_dirty_pages_pct = 90 #innodb 主线程刷新缓存池中的数据,使脏数据比例小于 90%,这是一个软限定,不被包管绝对实行. innodb_log_group_home_dir = /usr/local/mysql/var/ #InnoDB 事务在被回滚之前可以等待一个锁定的超时秒数。InnoDB 在它本身的 锁定表中主动检测事务死锁而且回滚事务。 InnoDB 用 LOCK TABLES 语句留意到锁定设置。默认值是 50 秒 innodb_lock_wait_timeout = 50 # InnoDB 用来刷新日记的方法.表空间总是利用双重写入刷新方法.默认值是 “fdatasync”, 另一个是 “O_DSYNC”. innodb_flush_method = O_DSYNC # 假如你发现 InnoDB 表空间破坏, 设置此值为一个非零值可能资助你导出你的表.从1 开始而且增加此值知道你能够乐成的导出表. innodb_force_recovery=1 # 加速 InnoDB 的关闭. 这会阻止 InnoDB 在关闭时做全扫除以及插入缓冲归并.这可能极大增加关机时间, 但是取而代之的是 InnoDB 可能在下次启动时做这些利用. innodb_fast_shutdown #*** mysqld options 相关选项 竣事***# # *** 其他 相关选项 ***# #*** mysqldump options 相关选项 开始***# [mysqldump] #支持较大数据库的转储,在导出非常巨大的表时需要此项。增加该变量的值非常安全,这是由于仅当需要时才会分配额外内存。例如,仅当你发出长查询或mysqld必须返回大的效果行时mysqld才会分配更多内存。该变量之所以取较小默认值是一种预防步伐,以捕获客户端和服务器之间的错误信息包,并确保不会因偶尔利用大的信息包而导致内存溢出。 假如你正是用大的BLOB值,而且未为mysqld授予为处理查询而访问充足内存的权限,也会遇到与大信息包有关的奇怪问题。假如猜疑出现了该情况,请尝试在mysqld_safe脚本开始增加ulimit -d 256000,并重启mysqld。 quick #*** mysql options 相关选项 开始***# [mysql] #允许通过 TAB 键提示 auto-rehash #数据库字符集 default-character-set = utf8 connect-timeout = 3 #*** mysql options 相关选项 开始***# [mysqld_safe] #增加每个进程的可打开文件数量.确认你已经将全系统限定设定的充足高!打开大量表需要将此值设大 open-files-limit = 8192 [/code]my.cnf加载次序:
也就是说后加载的配置会将之前加载的配置覆盖掉,最终生效的是后加载的配置。特殊的,假如在利用mysqld_safe启动mysql时利用了参数--defaults-file指定自定义配置文件,将最终利用指定配置文件中的配置,此时要求该配置文件只允许所属用户具有写权限,其他用户不能有写权限,否则启动会报错。 到此这篇关于mysql初始化命令mysqld --initialize参数分析小结的文章就先容到这了,更多相关mysqld --initialize参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 来源:https://www.jb51.net/database/326024m9w.htm 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|手机版|小黑屋|梦想之都-俊月星空
( 粤ICP备18056059号 )|网站地图
GMT+8, 2025-7-1 22:00 , Processed in 0.037635 second(s), 18 queries .
Powered by Mxzdjyxk! X3.5
© 2001-2025 Discuz! Team.