`

Mysql数据库服务器配置文件/etc/my.cnf的详细配置

阅读更多

以下是 Mysql数 据库服务器配置文件 /etc/my.cnf的详细配置。应用场合是 InnoDB引擎, 4核 CPU, 32位 SUSE。

[client]
port        = 3306
socket      = /tmp/mysql.sock
# The MySQL server
[mysqld]
bind-address = 192.168.0.11
port         = 3306
socket       = /tmp/mysql.sock
 
##设置表的默认类型。和 default-storage-engine同义
default-table-type = innodb
 
# 以下是网络传输配置
#连接进程帧听队列的大小
back_log = 50
 
#之前有过经验, connections超过 370的时候, 线程的栈空间被占满, mysqld无法工作,所以限制为 200
max_connections=200
 
#连接 500次发生错 误之后,屏蔽从该 host的所有连接
max_connect_errors = 500
 
#通信缓冲区的最大长度。包或任何生成的 /中间字符串的最大大小。
max_allowed_packet = 32M
 
在查询之间将通信缓冲区重设为该值。如果语句超出该长度,缓冲区自动扩大,直到 max_allowed_packet字节。
net_buffer_length = 8K
 
# 以下是查询优化
#避免外部锁定 (默认 是 ON). 对应 variable的 skip_external_locking
skip-locking
 
#索引缓冲区 (仅作用 于 MYISAM表和临时表 ),决定了数据库索引处理的速度
key_buffer_size = 10M
 
#所有线程打开的表的数目 (一个表使用 2个文件描述符 ),表数量多,就要大一些。增大该值可以增加 mysqld需要的文件描述符的数量。可以检查 Opened_tables(已经打开的表的数量 )状 态变量来检查你是否需要增加表缓存。
table_cache = 2048
 
#每个排序线程分配的缓冲区的大小。增加该值可以加快 ORDER BY或 GROUP BY操 作
sort_buffer_size = 5M
 
#用于完全联接的缓冲区的大小 (当不使用索引的时候使用联接操作 )。
#一般情况获得快速联接的最好方法是添加索引。当增加索引时不可能通过增加 join_buffer_size值来获得快速完全联接。
#将为两个表之间的每个完全联接分配联接缓冲区。对于多个表之间不使用索引的复杂联接,需要多联接缓冲 区。
join_buffer_size = 8M
 
#服务器应缓存多少线程以便重新使用。当客户端断开连接时,如果线程少于 thread_cache_size,则客户端的线程被放入缓存。
#如果状态变量 Threads_created(创建用来处理连接的线程数 )较大,你可能要增加 thread_cache_size值。缓 存访问率的计算方法 Threads_created/Connections(试图连接到 (不管是否成功 )MySQL服务器的连接数 )
thread_cache_size = 8
 
#使应用程序向线程系统提供需要同时运行的期望的线程数目的提示
thread_concurrency = 8
 
#为缓存查询结果分配的内存的数量,加快查询的速度。默认值是 0,即禁用查询缓存。
query_cache_size = 64M
 
#不要缓存大于该值的结果,默认值是 1048576(1MB)。
query_cache_limit = 2M
 
#ft_min_word_len和 ft_max_word_len表示 FULLTEXT索 引的最小和最大字长
ft_min_word_len = 4
 
#每个线程的堆栈大小
thread_stack = 192K
 
#事务隔离级别。 READ-UNCOMMITTED: 未提交读 会出现脏 读、不可重复读、幻读 ( 隔离级别最低,并发性能高 ) ; READ-COMMITTED: 提交读 会出现不可 重复读、幻读问题(锁定正在读取的行); REPEATABLE-READ: 默认值,可重复读 会出幻读(锁定所读取的所有行) ; SERIALIZABLE: 序列化 保证所有的 情况不会发生(锁表)
transaction_isolation = REPEATABLE-READ
 
#联合查询或者 view的 时候,可能会建立临时表,如果在磁盘上建的话,会导致性能低,设置此值可以一定程度上加快速度
tmp_table_size = 64M
 
#每个线程连续扫描时为扫描的每个表分配的缓冲区的大小 ,如果进行多次连续扫描,可能需要增加该值
read_buffer_size = 1M
 
#当排序后按排序后的顺序读取行时,则通过该缓冲区读取行,避免搜索硬盘。将该变量设置为较大的值可以 大大改进 ORDER BY的性能。但是,这是为每个客户端分配的缓冲区, 因此你不应将全局变量设置为较大的值。相反,只为需要运行大查询的客户端更改会话变量。
read_rnd_buffer_size = 2M
 
# 以下是主从同步配置
# Replication Master Server (default)
#主机是 1。备机从 2开始。
server-id    = 1
 
#启动数据库更新二进制日志记录,日志文件名前缀为 mysql-bin
log-bin=mysql-bin
 
#在事务过程中容纳二进制日志 SQL语句的缓存大小,
#二进制日志缓存是服务器支持事务存储引擎并且服务器启用了二进制日志 (–log-bin选项 )的前提下为 每个客户端分配的内存。
#如果经常使用大的,多语句事务,可以增加该值以获得更有的性能
binlog_cache_size = 5M
 
#是否记录慢查询,默认 OFF。用 long_query_time变量的值来确定“慢查 询”。
log_slow_queries
 
#超过 2S的 query将记 slow query日志
long_query_time = 2
 
#没有使用索引的查询也作为慢速查询记录到慢速日志里
#或者用 log-queries-not-using-indexes
log_long_format
 
#告诉主服务器,如果当前的数据库 (即 USE选定的数据 库 )是 db_name,不应将更新保存到二进制日志中。
binlog-ignore-db = information_schema
binlog-ignore-db = cluster
binlog-ignore-db = mysql
 
#告诉从服务器限制默认数据库 (由 USE所选择 )为 db_name的 语句的复制
replicate-do-db = test1
replicate-do-db = test2
 
#跨库更新表要用到如下配置。告诉从服务器线程限制复制更新的表匹配指定的数据库和表名模式的语句。模 式可以包含‘ %’和‘ _’通配符,与 LIKE模 式匹配操作符具有相同的含义。要指定多个表,应多次使用该选项,每个表使用一次。该选项可以跨数据库进行更新。
replicate-wild-do-table = test1.%
replicate-wild-do-table = test2.%
 
#当 Slave从 Master数据库读取日志时更新新写入日志中 。如果只启动 log-bin 而没有启动 log-slave-updates则 Slave只记录针对自己数据库操作的更新
log-slave-updates
 
# 以下是 InnoDB 引擎配置
#InnoDB 不会自己建立目录,必须自己使用操作系统命令建立相应的目录。检查你的 MySQL 服务程序在 datadir 目录里 有足够的权限建立文件 (mysql用户组拥有 )。
#这是 InnoDB表 的目录共用设置。如果没有设置, InnoDB 将使用 MySQL的 datadir 目录为缺省目录。如果设定一个空字串 ,可以在 innodb_data_file_path 中设定绝对路径。
innodb_data_home_dir = /data/dbdata/
 
#单独指定数据文件的路径与大小。数据文件的完整路径由 innodb_data_home_dir 与这里所设定值的组合。 文件大小以 MB 单 位指定。因此在文件大小指定后必有“ M”。 InnoDB 也支持缩写“ G”, 1G = 1024M。从 3.23.44 开始,在那些支持大文件的操作系统上可以设置数据文件大小大于 4 GB。而在另一些操作系统上数据文件必须小于 2 GB。
#如果用 autoextend 选项描述最后一个数据文件,当 InnoDB 用尽所有表自 由空间后将会自动扩充最后一个数据文件,每次增量为 8MB
#InnoDB是不会注意你的 OS文 件尺寸限制的, 在一些文件系统中你可能要设定最大容量 2G限制:
#innodb_data_home_dir = innodb_data_file_path = /ibdata/ibdata1:100M:autoextend:max:2000M
#这里应当预先创建好 10个 2048M的文件,目前还没有创建
innodb_data_file_path = ibdata1:2000M;ibdata2:2000M;ibdata3:2000M;ibdata4:2000M;ibdata5:2000M;ibdata6:2000M;ibdata7:2000M;ibdata8:2000M;ibdata9:2000M;ibdata10:2000M:autoextend
 
#InnoDB 日志文件的路径。如果没有明确指定将默认在 MySQL 的 datadir 目 录下建立两个 5 MB 大小的 ib_logfile0和 ib_logfile1文件。
#将日志文件与数据文件分别放在不同的物理硬盘中对提高性能通常是很有益的
innodb_log_group_home_dir = /data/dbdata/
 
#主要用来存储表结构和数据字典,表越多要求内存就越大
innodb_additional_mem_pool_size = 16M
 
# You can set .._buffer_pool_size up to 50 – 80 %
# of RAM but beware of setting memory usage too high
#表和索引数据的内存缓冲区,越大性能越高。但不能超过物理内存的 50%。若 64位 OS,该值可以更大
#32位 OS受 2G内存的限制,不能将内存使用设置太高, glibc 会把进程堆增长到线程堆栈之上,这将会使服务器崩溃。下面的接近或超过于 2G 将会很危险:
#innodb_buffer_pool_size + key_buffer +    max_connections * (sort_buffer_size + record_buffer_size + binlog_cache_size) + max_connections * 2 MB
#每个线程将使用 2MB(MySQL AB 二进制版本为 256 KB)的堆栈,在最坏的环境下还会使用 sort_buffer_size + record_buffer_size 的附加内存。
innodb_buffer_pool_size = 1G
 
#InnoDB 中的文件 I/O 线 程。 通常设置为 4
innodb_file_io_threads = 4
 
#并发线程。 2*(内 核数量 +磁盘数量 )
innodb_thread_concurrency = 16
 
#1表示每次事务结束都写日志并刷新磁盘; 2表示每次事务写日志但不刷新磁盘 (每秒刷新 ); 0(默认值 )表示每秒 写日志并刷新磁盘。 0表示最多丢失 1秒的数据,但性能最好。
innodb_flush_log_at_trx_commit = 0
 
#InnoDB 将日志写入日志磁盘文件前的缓冲大小。理想值为 1M 至 8M。大的日志 缓冲允许事务运行时不需要将日志保存入磁盘而只到事务被提交 (commit)。 因此,如果有大的事务,设置大的日志缓冲可以减少磁盘 I/O。
innodb_log_buffer_size = 8M
 
# Set .._log_file_size to 25 % of buffer pool size
#日志文件大小设置。增大该值可减少刷新日志频率,但会延长 mysql启动和灾难恢复的时间。
#日志组中的每个日志文件的大小 (单位 MB)。如果 n 是日志组 (innodb_log_files_in_group)中日志文件的数目,那么理想的数值为 1M 至缓冲池 (innodb_log_buffer_size)大小的 1/n。较 大的值,可以减少刷新缓冲池的次数,从而减少磁盘 I/O。但是大的日志 文件意味着在崩溃时需要更长的时间来恢复数据。
innodb_log_file_size = 256M
 
#日志组中的日志文件数目。 InnoDB 以环型方式 (circular fashion)写入文件。数值 3 被 推荐使用
innodb_log_files_in_group = 3
 
#InnoDB行锁导致的死锁等待时间 (默认值是 50S)
innodb_lock_wait_timeout = 30
 
#是否支持分布式事务,关闭以提高性能 (默认是 ON)
innodb_support_xa = OFF
 
[mysqldump]
quick
max_allowed_packet = 16M
 
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
 
[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
 
[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
 
[mysqlhotcopy]
interactive-timeout


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/suhang070/archive/2010/05/12/5581344.aspx

分享到:
评论

相关推荐

    etc文件下mysql的配置文件

    对于MySQL数据库管理系统来说,它的配置文件通常位于`/etc/mysql`目录下,这个文件对MySQL服务器的运行方式有重大影响。本篇文章将深入探讨`etc`文件下的MySQL配置文件及其重要性。 MySQL的主配置文件一般被称为`my...

    mysql配置文件my.cnf

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,而`my.cnf`是MySQL服务器的主要配置文件,它定义了数据库的运行参数和服务行为。这个文件对于优化性能、确保安全性以及满足特定的系统需求至关重要。以下是对`my....

    修改my.cnf之后启动mysql出错(完美解决).docx

    MySQL 配置文件 my.cnf 是 MySQL 数据库的核心配置文件,该文件用于存储 MySQL 服务器的各种配置选项,例如数据库的连接参数、缓存设置、日志记录等。my.cnf 文件通常位于 /etc/mysql/ 目录下。 MySQL 启动错误的...

    MySQL无法重启报错Warning: World-writable config file ‘/etc/my.cnf’ is ignored的解决方法

    在使用MySQL数据库时,我们可能会遇到这样一个问题:尝试重启MySQL服务时,系统返回"Warning: World-writable config file '/etc/my.cnf' is ignored"的错误提示,这意味着MySQL配置文件`my.cnf`的权限设置不正确,...

    linux下mysql配置文件my.cnf详解.pdf

    在Linux环境中,MySQL的主要配置文件是`my.cnf`,它是数据库服务器启动时读取的配置文件,用于设定各种参数和选项,以优化数据库的性能、安全性以及资源使用。这份文档将深入探讨`my.cnf`的结构、主要配置项及其作用...

    MySQL修改my.cnf配置不生效的解决方法

    MySQL数据库的配置主要依赖于`my.cnf`文件,它包含了各种服务器参数,如缓存大小、连接数限制等,这些参数对数据库的性能有着直接的影响。然而,有时候当你修改了`my.cnf`文件后,却发现配置并未按预期生效,这可能...

    查看linux服务器上mysql配置文件路径的方法

    在类NUIX的系统中,配置文件的位置一般在/etc/my.cnf 或者 /etc/MySQL/my.cnf 我们见过有些人尝试修改配置文件但是不生效,因为他们修改的并不是服务器读取的文件。例如Debian下,/etc/mysql/my.cnf才是MySQL读取的...

    MySQL中my.cnf文件选项

    `my.cnf`文件是MySQL服务端的核心配置文件之一,它通常位于系统的特定目录下(例如Linux系统中通常位于`/etc/mysql/my.cnf`或`/etc/my.cnf`)。此文件包含一系列的配置选项,这些选项决定了MySQL服务器的行为特性。...

    Linux 安装mysql8详细教程.doc

    创建my.cnf配置文件,以便初始化MySQL数据库。命令如下: `vi /etc/my.cnf` my.cnf文件的默认读取顺序为: 1. /etc/my.cnf 2. /etc/mysql/my.cnf 3. /usr/local/mysql/etc/my.cnf 4. ~/.my.cnf PATH变量配置 ...

    mysql 主从文件配置,my.cnf

    这是MySQL服务器的默认配置文件,通常位于系统的/etc/my.cnf或者/etc/mysql/my.cnf路径下,用于设置MySQL服务器的启动参数和各种配置选项。在主从复制中,我们需要关注以下几个关键参数: 1. **server-id**:这是每...

    MySQL中配置文件my.cnf因权限问题导致无法启动的解决方法

    在MySQL的运行过程中,配置文件`my.cnf`起着至关重要的作用,它包含了服务器启动、数据存储、网络连接等多方面的配置参数。当`my.cnf`的权限设置不当,例如设置为777,这可能导致MySQL服务无法正常启动,并抛出...

    MySQL之my.cnf配置完美详解.

    - "skip-networking"关闭MySQL的TCP/IP连接方式,如果WEB服务器是远程连接到MySQL数据库服务器则不应开启该选项。 4. MySQL连接相关配置 - "back_log"指定了服务器暂时停止响应新请求之前的短时间内可以存放的连接...

    mysql5.5安装好找不到my.cnf(看完你就懂了).docx

    ### MySQL 5.5 安装后找不到 my.cnf 配置文件的解决方案 #### 问题背景 在安装MySQL 5.5版本后,部分用户可能会遇到无法找到...此外,了解并掌握MySQL的配置文件管理方法对于长期维护和运营MySQL数据库也至关重要。

    mysql 查看当前使用的配置文件my.cnf的方法(推荐)

    MySQL数据库系统在启动时会加载一个名为`my.cnf`的配置文件,该文件用于定义服务器的各种参数,如端口、日志位置、缓存大小等。`my.cnf`通常位于MySQL的安装目录,但用户也可以选择在其他路径下放置并指定加载。在...

    MySQL 5.6 my.cnf 配置

    MySQL 5.6是MySQL数据库管理系统的一个重要版本,它的配置文件`my.cnf`是数据库服务器启动时读取的关键文件,用于定义各种参数和设置,从而影响MySQL的性能、安全性以及资源消耗。在这个版本中,`my.cnf`通常位于...

    my.cnf参数配置

    MySQL是一款广泛使用的开源关系型数据库管理系统,在实际部署和维护过程中,通过对`my.cnf`配置文件的合理调整可以极大地优化MySQL的性能和稳定性。本篇文章将深入探讨`my.cnf`配置文件中的关键参数及其作用,并提供...

Global site tag (gtag.js) - Google Analytics