以下是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

mysql配置文件完全_MySQL配置文件my.cnf详解相关推荐

  1. mysql source 数据库_MySQL 数据库 source 命令详解及实例

    MySQL 数据库 source 命令详解及实例 MySQL 数据库 source 命令,该命令是数据库导入命令.source 命令的用法非常简单,首先你需要进入 MySQL 数据库的命令行管理界面, ...

  2. mysql decimal 类型_MySQL数据类型DECIMAL用法详解

    MySQLDECIMAL数据类型用于在数据库中存储精确的数值.我们经常将DECIMAL数据类型用于保留准确精确度的列,例如会计系统中的货币数据. 要定义数据类型为DECIMAL的列,请使用以下语法: ...

  3. explain mysql怎么用_mysql中explain用法详解

    EXPLAIN用于SELECT语句中的每个表返回一行信息.表以它们在处理查询过程中将被MySQL读入的顺序被列出 如果在select语句前放上关键词explain,mysql将解释它如何处理selec ...

  4. mysql 双机备份_mysql双机热备详解及延伸备份

    开门见山,首先,主服务器的mysql版本不能高于从服务器的版本 ,可以是一样的,其次端口号必须统一. 好了,现在开始配置双机热备(随后将会提到循环备份以及互备)我使用的版本为redhat5.4两台ip ...

  5. mysql事务实战_mysql事务隔离级别详解和实战

    A事务做了操作 没有提交 对B事务来说 就等于没做 获取的都是之前的数据 但是 在A事务中查询的话 查到的都是操作之后的数据 没有提交的数据只有自己看得到,并没有update到数据库. 查看InnoD ...

  6. mysql数据库导出_MySQL数据库导入导出详解[转发]

    1. 概述 MySQL数据库的导入,有两种方法: 1) 先导出数据库SQL脚本,再导入: 2) 直接拷贝数据库目录和文件. 在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况 ...

  7. mysql 字符串解析_MySQL 动态字符串处理详解

    MySQL中,常常会看到一些关于动态字符串的处理,列如:DYNAMIC_STRING. 为了记录动态字符串的实际长度,缓冲区的最大长度,以及每次字符串需要调整时,及时分配新的内存,以及调整长度.MyS ...

  8. php mysql 查询缓存_mysql 查询缓存使用详解

    MySQL server 有一个重要的特征:查询缓存(Query Cache). 当在使用中,查询缓存会存储一个 SELECT 查询的文本与被传送到客 户端的相应结果.如果之后接收到一个同样的查询,服 ...

  9. mysql grant 数据库_MySQL的Grant命令详解

    本文实例,运行于 MySQL 5.0 及以上版本. MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删 ...

  10. mysql修改字符集_MySQL修改字符集步骤详解

    在实际应用中,如果一开始没有正确的设置字符集,在运行一段时间以后,才发现当前字符集不能满足要求,需要进行调整,但又不想丢弃这段时间的数据,这个时候就需要修改字符集. 在<MySQL设置默认字符集 ...

最新文章

  1. 数组常用解题方法(持续更新)
  2. RabbitMQ消息的确认模式
  3. NYOJ 330 一个简单的数学题
  4. 基本排序算法之4——归并排序mergesort
  5. ssm中怎么用location.href跳到controller层_聊聊自动驾驶中的功能开发
  6. configurationproperties_【Springboot】注解@ConfigurationProperties让配置整齐而简单
  7. ZooKeeper动态重新配置
  8. 力扣-剑指offer 06 从尾到头打印链表
  9. SCI/SCIE/SSCI/期刊简介及官方查询验证方法
  10. 三字代码html,【涨知识】原来三字代码是这样来的!四字代码是什么?
  11. 使用通达信一次性获取沪深300成分股
  12. C语言定义结构体的几种方法
  13. word 引文 角标_如何自动向Microsoft Word添加引文和书目
  14. Mac M1 修改/usr/bin文件夹显示permission denied 没有权限的问题
  15. mysql not null 语法_[MySQL]--MySQL表中某个列插入数据总被截断,报编码方式的语法错误,实际是column的not null属性和更改编码语法导致的冲突。...
  16. 基于GNN的图表示学习及其应用
  17. Gmail账号申诉成功
  18. 计算机发展史图,图说计算机发展史
  19. android Camera 设置焦距
  20. QT6在线安装下载速度慢的解决办法,QT6,QT5.15.1,QT5.15.0及旧版本都支持

热门文章

  1. 深入解析Node.js setTimeout方法的执行过程
  2. 新闻事件报道重要性判定项目
  3. RISC-V正在采取行动,避免MIPS类的碎片化
  4. Synchronized 关键字的用法
  5. 2019.3.23 捕获异常
  6. [openjudge] 2797最短前缀 Trie
  7. PC_excel完毕一列英文小写变大写
  8. 关于mysql ERROR 1045 (28000)错误的解决办法
  9. sql注入基于错误-单引号-字符型
  10. 法兰程序CAD开发的进展