《mysql配置文件详解说明》由会员分享,可在线阅读,更多相关《mysql配置文件详解说明(11页珍藏版)》请在金锄头文库上搜索。
1、mysql 配置文件 f 详解说明MySQL 配置文件 f 例子最详细翻译,可以保存做笔记用转载#BEGIN CONFIG INFO#DESCR: 4GB RAM, 只使用 InnoDB, ACID, 少量的连接, 队列负载大#TYPE: SYSTEM#END CONFIG INFO# 此 mysql 配置文件例子针对 4G 内存 # 主要使用 INNODB#处理复杂队列并且连接数量较少的 mysql 服务器# 将此文件复制到/www/wdlinux/etc/f 或/etc/f 作为全局设置,# mysql-data-dir/f 作为服务器指定设置# (localstatedir for th
2、is installation) 或者放入# /f 作为用户设置 .# 在此配置文件中, 你可以使用所有程序支持的长选项.# 如果想获悉程序支持的所有选项# 请在程序后加上-help 参数运行程序.# 关于独立选项更多的细节信息可以在手册内找到# 以下选项会被 MySQL 客户端应用读取.# 注意只有 MySQL 附带的客户端应用程序保证可以读取这段内容 .# 如果你想你自己的 MySQL 应用程序获取这些值# 需要在 MySQL 客户端库初始化的时候指定这些选项#client#password = your_passwordport = 3306socket = /tmp/mysql.soc
3、k# * 应用定制选项 *# MySQL 服务端#mysqld# 一般配置选项port = 3306socket = /tmp/mysqls.sock# back_log 是操作系统在监听队列中所能保持的连接数,# 队列保存了在 MySQL 连接管理器线程处理之前的连接.# 如果你有非常高的连接率并且出现connection refused 报错,# 你就应该增加此处的值.# 检查你的操作系统文档来获取这个变量的最大值.# 如果将 back_log 设定到比你操作系统限制更高的值,将会没有效果back_log = 50# 不在 TCP/IP 端口上进行监听.# 如果所有的进程都是在同一台服务器
4、连接到本地的 mysqld,# 这样设置将是增强安全的方法# 所有 mysqld 的连接都是通过 Unix sockets 或者命名管道进行的.# 注意在 windows 下如果没有打开命名管道选项而只是用此项# (通过 enable-named-pipe 选项) 将会导致 mysql 服务没有任何作用 !#skip-networking# MySQL 服务所允许的同时会话数的上限# 其中一个连接将被 SUPER 权限保留作为管理员登录.# 即便已经达到了连接数的上限.max_connections = 100# 每个客户端连接最大的错误允许数量,如果达到了此限制.# 这个客户端将会被 MyS
5、QL 服务阻止直到执行了FLUSH HOSTS 或者服务重启# 非法的密码以及其他在链接时的错误会增加此值.# 查看 Aborted_connects 状态来获取全局计数器 .max_connect_errors = 10# 所有线程所打开表的数量.# 增加此值就增加了 mysqld 所需要的文件描述符的数量# 这样你需要确认在mysqld_safe中 open-files-limit 变量设置打开文件数量允许至少 4096table_cache = 2048# 允许外部文件级别的锁. 打开文件锁会对性能造成负面影响# 所以只有在你在同样的文件上运行多个数据库实例时才使用此选项(注意仍会有其他
6、约束!)# 或者你在文件层面上使用了其他一些软件依赖来锁定 MyISAM 表#external-locking# 服务所能处理的请求包的最大大小以及服务所能处理的最大的请求大小(当与大的 BLOB 字段一起工作时相当必要)# 每个连接独立的大小.大小动态增加max_allowed_packet = 16M# 在一个事务中 binlog 为了记录 SQL 状态所持有的 cache 大小# 如果你经常使用大的,多声明的事务,你可以增加此值来获取更大的性能.# 所有从事务来的状态都将被缓冲在 binlog 缓冲中然后在提交后一次性写入到 binlog 中# 如果事务比此值大, 会使用磁盘上的临时文件
7、来替代.# 此缓冲在每个连接的事务第一次更新状态时被创建binlog_cache_size = 1M# 独立的内存表所允许的最大容量.# 此选项为了防止意外创建一个超大的内存表导致永尽所有的内存资源.max_heap_table_size = 64M# 排序缓冲被用来处理类似 ORDER BY 以及 GROUP BY 队列所引起的排序# 如果排序后的数据无法放入排序缓冲,# 一个用来替代的基于磁盘的合并分类会被使用# 查看 Sort_merge_passes 状态变量.# 在排序发生时由每个线程分配sort_buffer_size = 8M# 此缓冲被使用来优化全联合(full JOINs 不
8、带索引的联合).# 类似的联合在极大多数情况下有非常糟糕的性能表现,# 但是将此值设大能够减轻性能影响.# 通过 Select_full_join 状态变量查看全联合的数量# 当全联合发生时,在每个线程中分配join_buffer_size = 8M# 我们在 cache 中保留多少线程用于重用# 当一个客户端断开连接后,如果 cache 中的线程还少于 thread_cache_size,# 则客户端线程被放入 cache 中.# 这可以在你需要大量新连接的时候极大的减少线程创建的开销# (一般来说如果你有好的线程模型的话,这不会有明显的性能提升.)thread_cache_size = 8
9、# 此允许应用程序给予线程系统一个提示在同一时间给予渴望被运行的线程的数量.# 此值只对于支持 thread_concurrency() 函数的系统有意义( 例如 Sun Solaris).# 你可可以尝试使用 CPU 数量*(2.4) 来作为 thread_concurrency 的值thread_concurrency = 8# 查询缓冲常被用来缓冲 SELECT 的结果并且在下一次同样查询的时候不再执行直接返回结果.# 打开查询缓冲可以极大的提高服务器速度, 如果你有大量的相同的查询并且很少修改表.# 查看 Qcache_lowmem_prunes 状态变量来检查是否当前值对于你的负载来
10、说是否足够高.# 注意: 在你表经常变化的情况下或者如果你的查询原文每次都不同,# 查询缓冲也许引起性能下降而不是性能提升.query_cache_size = 64M# 只有小于此设定值的结果才会被缓冲# 此设置用来保护查询缓冲,防止一个极大的结果集将其他所有的查询结果都覆盖.query_cache_limit = 2M# 被全文检索索引的最小的字长.# 你也许希望减少它,如果你需要搜索更短字的时候.# 注意在你修改此值之后,# 你需要重建你的 FULLTEXT 索引ft_min_word_len = 4# 如果你的系统支持 memlock() 函数,你也许希望打开此选项用以让运行中的 my
11、sql 在在内存高度紧张的时候,数据在内存中保持锁定并且防止可能被 swapping out# 此选项对于性能有益#memlock# 当创建新表时作为默认使用的表类型,# 如果在创建表示没有特别执行表类型,将会使用此值default_table_type = MYISAM# 线程使用的堆大小. 此容量的内存在每次连接时被预留.# MySQL 本身常不会需要超过 64K 的内存# 如果你使用你自己的需要大量堆的 UDF 函数# 或者你的操作系统对于某些操作需要更多的堆,# 你也许需要将其设置的更高一点.thread_stack = 192K# 设定默认的事务隔离级别.可用的级别如下:# READ
12、-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLEtransaction_isolation = REPEATABLE-READ# 内部(内存中) 临时表的最大大小# 如果一个表增长到比此值更大,将会自动转换为基于磁盘的表.# 此限制是针对单个表的,而不是总和.tmp_table_size = 64M# 打开二进制日志功能.# 在复制(replication)配置中,作为 MASTER 主服务器必须打开此项# 如果你需要从你最后的备份中做基于时间点的恢复,你也同样需要二进制日志.log-bin=mysql-bin# 如果你在使
13、用链式从服务器结构的复制模式 (A-B-C),# 你需要在服务器 B 上打开此项.# 此选项打开在从线程上重做过的更新的日志,# 并将其写入从服务器的二进制日志.#log_slave_updates# 打开全查询日志. 所有的由服务器接收到的查询 (甚至对于一个错误语法的查询)# 都会被记录下来. 这对于调试非常有用, 在生产环境中常常关闭此项.#log# 将警告打印输出到错误 log 文件. 如果你对于 MySQL 有任何问题# 你应该打开警告 log 并且仔细审查错误日志,查出可能的原因.#log_warnings# 记录慢速查询. 慢速查询是指消耗了比 long_query_time 定
14、义的更多时间的查询.# 如果 log_long_format 被打开,那些没有使用索引的查询也会被记录.# 如果你经常增加新查询到已有的系统内的话. 一般来说这是一个好主意,log_slow_queries# 所有的使用了比这个时间(以秒为单位)更多的查询会被认为是慢速查询.# 不要在这里使用1, 否则会导致所有的查询,甚至非常快的查询页被记录下来(由于 MySQL 目前时间的精确度只能达到秒的级别).long_query_time = 2# 在慢速日志中记录更多的信息.# 一般此项最好打开.# 打开此项会记录使得那些没有使用索引的查询也被作为到慢速查询附加到慢速日志里log_long_for
15、mat# 此目录被 MySQL 用来保存临时文件.例如,# 它被用来处理基于磁盘的大型排序,和内部排序一样.# 以及简单的临时表.# 如果你不创建非常大的临时文件,将其放置到 swapfs/tmpfs 文件系统上也许比较好# 另一种选择是你也可以将其放置在独立的磁盘上.# 你可以使用; 来放置多个路径# 他们会按照 roud-robin 方询使用.#tmpdir = /tmp# * 复制有关的设置# 唯一的服务辨识号,数值位于 1 到 232-1 之间.# 此值在 master 和 slave 上都需要设置.# 如果 master-host 没有被设置,则默认为 1, 但是如果忽略此选项,My
16、SQL 不会作为 master 生效.server-id = 1# 复制的 Slave (去掉 master 段的注释来使其生效)# 为了配置此主机作为复制的 slave 服务器,你可以选择两种方法 :# 1) 使用 CHANGE MASTER TO 命令 (在我们的手册中有完整描述) -# 语法如下:# CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=,# MASTER_USER=, MASTER_PASSWORD= ;# 你需要替换掉 , , 等被尖括号包围的字段以及使用 master 的端口号替换(默认 3306).# 例子:# CHANGE MASTER TO MASTER_HOST=125.564.12.1, MASTER_PORT=3306