mysql的配置文件my.cnf

 1 调整MySQL运行参数,修改/etc/my.cnf文件调整mysql运行参数重启MySQL后生效,在MySQL4版本以后,一部分内部变量可以在MySQL运行时设置,不过重启MySQL就失效了。
 2 mysqld程序--目录和文件
 3 basedir      = path          # 使用给定目录作为根目录(安装目录)。
 4 datadir      = path          # 从给定目录读取数据库文件。
 5 pid-file     = filename      # 为mysqld程序指定一个存放进程ID的文件(仅适用于UNIX/Linux系统);
 6
 7 [mysqld]
 8 socket = /tmp/mysql.sock     # 为MySQL客户程序与服务器之间的本地通信指定一个套接字文件(Linux下默认是/var/lib/mysql/mysql.sock文件)
 9 port             = 3306      # 指定MsSQL侦听的端口
10 key_buffer_size       = 384M      # key_buffer是用于索引块的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写)。
11                                索引块是缓冲的并且被所有的线程共享,key_buffer的大小视内存大小而定。
12 table_cache      = 512       # 为所有线程打开表的数量。增加该值能增加mysqld要求的文件描述符的数量。可以避免频繁的打开数据表产生的开销
13 sort_buffer_size = 2M        # 每个需要进行排序的线程分配该大小的一个缓冲区。增加这值加速ORDER BY或GROUP BY操作。
14                                注意:该参数对应的分配内存是每连接独占!如果有100个连接,那么实际分配的总共排序缓冲区大小为100×6=600MB
15 read_buffer_size = 2M        # 读查询操作所能使用的缓冲区大小。和sort_buffer_size一样,该参数对应的分配内存也是每连接独享。
16 query_cache_size = 32M       # 指定MySQL查询结果缓冲区的大小
17 read_rnd_buffer_size    = 8M # 改参数在使用行指针排序之后,随机读用的。
18 myisam_sort_buffer_size =64M # MyISAM表发生变化时重新排序所需的缓冲
19 thread_concurrency      = 8 # 最大并发线程数,取值为服务器逻辑CPU数量×2,如果CPU支持H.T超线程,再×2
20 thread_cache            = 8 # #缓存可重用的线程数
21 skip-locking                 # 避免MySQL的外部锁定,减少出错几率增强稳定性。
22 [mysqldump]
23 max_allowed_packet      =16M # 服务器和客户端之间最大能发送的可能信息包
24
25 [myisamchk]
26 key_buffer   = 256M
27 sort_buffer = 256M
28 read_buffer = 2M
29 write_buffer = 2M
30
31 其他可选参数:
32 back_log = 384
33     指定MySQL可能的连接数量。
34     当MySQL主线程在很短时间内接收到非常多的连接请求,该参数生效,主线程花费很短时间检查连接并且启动一个新线程。
35     back_log参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。
36     如果系统在一个短时间内有很多连接,则需要增大该参数的值,该参数值指定到来的TCP/IP连接的侦听队列的大小。
37     试图设定back_log高于你的操作系统的限制将是无效的。默认值为50。对于Linux系统推荐设置为小于512的整数。
38 max_connections = n
39     MySQL服务器同时处理的数据库连接的最大数量(默认设置是100)。超过限制后会报 Too many connections 错误
40 key_buffer_size = n
41     用来存放索引区块的RMA值(默认设置是8M),增加它可得到更好处理的索引(对所有读和多重写)
42 record_buffer:
43     每个进行一个顺序扫描的线程为其扫描的每张表分配这个大小的一个缓冲区。
44     如果你做很多顺序扫描,你可能想要增加该值。默认数值是131072(128K)
45 wait_timeout:
46     服务器在关闭它之前在一个连接上等待行动的秒数。
47 interactive_timeout:
48     服务器在关闭它前在一个交互连接上等待行动的秒数。
49     一个交互的客户被定义为对 mysql_real_connect()使用 CLIENT_INTERACTIVE 选项的客户。
50     默认数值是28800,可以把它改为3600。
51 skip-name-resolve
52     禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。
53     但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求!
54 log-slow-queries = slow.log
55     记录慢查询,然后对慢查询一一优化
56 skip-innodb
57 skip-bdb
58     关闭不需要的表类型,如果你需要,就不要加上这个
59
60
61 # > SHOW VARIABLES LIKE ‘%query_cache%‘;
62 # > SHOW STATUS LIKE ‘Qcache%‘;
63 如果Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够的情况;
64 如果Qcache_hits的值非常大,则表明查询缓冲使用非常频繁,如果该值较小反而会影响效率,那么可以考虑不用查询缓冲;
65 如果Qcache_free_blocks的值非常大,则表明缓冲区中碎片很多。
66
67
68 ##########################################
69 ######      max_allowed_packet      ######
70 ##########################################
71 通信信息包是发送至MySQL服务器的单个SQL语句,或发送至客户端的单一行。
72 在MySQL 5.1服务器和客户端之间最大能发送的可能信息包为1GB。
73 当MySQL客户端或mysqld服务器收到大于max_allowed_packet字节的信息包时,将发出“信息包过大”错误,并关闭连接。对于某些客户端,如果通信信息包过大,在执行查询期间,了能回遇到“丢失与MySQL服务器的连接”错误。
74 客户端和服务器均有自己的max_allowed_packet变量,因此,如你打算处理大的信息包,必须增加客户端和服务器上的该变量。
75 如果你正在使用mysql客户端程序,其max_allowed_packet变量的默认值为16MB。要想设置较大的值,可用下述方式启动mysql:
76 mysql> mysql --max_allowed_packet=32M
77 它将信息包的大小设置为32MB。
78 服务器的默认max_allowed_packet值为1MB。如果服务器需要处理大的查询,可增加该值(例如,如果准备处理大的BLOB列)。例如,要想将该设置为16MB,可采用下述方式启动服务器:
79 mysql> mysqld --max_allowed_packet=16M
80
81 也能使用选项文件来设置max_allowed_packet。要想将服务器的该变量设置为16MB,可在选项文件中增加下行内容:
82 [mysqld]
83 max_allowed_packet=16M
84 增加该变量的值十分安全,这是因为仅当需要时才会分配额外内存。例如,仅当你发出长查询或mysqld必须返回大的结果行时mysqld才会分配更多内存。该变量之所以取较小默认值是一种预防措施,以捕获客户端和服务器之间的错误信息包,并确保不会因偶然使用大的信息包而导致内存溢出。
85 如果你正是用大的BLOB值,而且未为mysqld授予为处理查询而访问足够内存的权限,也会遇到与大信息包有关的奇怪问题。如果怀疑出现了该情况,请尝试在mysqld_safe脚本开始增加ulimit -d 256000,并重启mysqld。
86 ##########################################
87 #####   MySQL怎样打开和关闭数据库表 #####
88 ##########################################
89 table_cache, max_connections和max_tmp_tables影响服务器保持打开的文件的最大数量。如果你增加这些值的一个或两个,你可以遇到你的操作系统每个进程打开文件描述符的数量上强加的限制。然而,你可以能在许多系统上增加该限制。请教你的OS文档找出如何做这些,因为改变限制的方法各系统有很大的不同。
90 table_cache与max_connections有关。例如,对于200个打开的连接,你应该让一张表的缓冲至少有200 * n,这里n是一个联结(join)中表的最大数量。
91 打开表的缓存可以增加到一个table_cache的最大值(缺省为64;这可以用mysqld的-O table_cache=#选项来改变)。一个表绝对不被关闭,除非当缓存满了并且另外一个线程试图打开一个表时或如果你使用mysqladmin refresh或mysqladmin flush-tables。
92 当表缓存满时,服务器使用下列过程找到一个缓存入口来使用:
93 不是当前使用的表被释放,以最近最少使用(LRU)顺序。
94 如果缓存满了并且没有表可以释放,但是一个新表需要打开,缓存必须临时被扩大。
95 如果缓存处于一个临时扩大状态并且一个表从在用变为不在用状态,它被关闭并从缓存中释放。
96 对每个并发存取打开一个表。这意味着,如果你让2个线程存取同一个表或在同一个查询中存取表两次(用AS),表需要被打开两次。任何表的第一次打开占2个文件描述符;表的每一次额外使用仅占一个文件描述符。对于第一次打开的额外描述符用于索引文件;这个描述符在所有线程之间共享
时间: 2024-11-06 03:36:33

mysql的配置文件my.cnf的相关文章

详解MySql的配置文件my.cnf

1.Windows下MySQL的配置文件是my.ini,一般会在安装目录的根目录. 2.Linux下MySQL的配置文件是my.cnf,一般会放在/etc/my.cnf,/etc/mysql/my.cnf 把MySql下面的配置文件my.cnf详细的做一个说明(Linux环境) 查看版本号的sql命令是:select version(); 首先,先找到my.cnf的路径,如果安装的时候没有做什么修改,那么它的默认路径是在“/etc/my.cnf”这个地方.如果找不到也没有关系,我们可以用两步找到

Mysql数据库配置文件my.cnf详解

basedir = path 使用给定目录作为根目录(安装目录). character-sets-dir = path 给出存放着字符集的目录. datadir = path 从给定目录读取数据库文件. pid-file = filename 为mysqld程序指定一个存放进程ID的文件(仅适用于UNIX/Linux系统); Init-V脚本需要使用这个文件里的进程ID结束mysqld进程. socket = filename 为MySQL客户程序与服务器之间的本地通信指定一个套接字文件(仅适用

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

my.cnf是mysql启动时加载的配置文件,一般会放在mysql的安装目录中,用户也可以放在其他目录加载. 安装mysql后,系统中会有多个my.cnf文件,有些是用于测试的. 使用locate my.cnf命令可以列出所有的my.cnf文件 命令 locate my.cnf 输出 ? 1 2 3 4 5 6 7 8 9 10 11 /usr/local/Cellar/mysql/5.6.24/my.cnf /usr/local/Cellar/mysql/5.6.24/mysql-test/i

mysql配置文件my.cnf整理

随时修改: 1 [mysqld] 2 #basedir= 3 datadir=/var/lib/mysql 4 #mysql.default_port=3306 5 #mysql.default_socket=/tmp/mysql.sock 6 socket=/var/lib/mysql/mysql.sock 7 #socket=/tmp/mysql.sock 8 user=mysql 9 # Disabling symbolic-links is recommended to prevent

MySQL 配置文件my.cnf

转载: MySQL配置文件my.cnf 详解: #BEGIN CONFIG INFO#DESCR: 4GB RAM, 只使用InnoDB, ACID, 少量的连接, 队列负载大#TYPE: SYSTEM#END CONFIG INFO ## 此mysql配置文件例子针对4G内存. # 主要使用INNODB#处理复杂队列并且连接数量较少的mysql服务器## 将此文件复制到/etc/my.cnf 作为全局设置,# mysql-data-dir/my.cnf 作为服务器指定设置# (@[email 

17、MySQL生产环境my.cnf配置文件解析

[client] port = 3306    #端口号 socket = /ryzc/mysql/data/mysql.sock         #sock文件路径 [mysqld] port = 3306 socket = /ryzc/mysql/data/mysql.sock                   # 服务端sock文件路径 pid-file        = /ryzc/mysql/data/localhost.pid       # pid文件存放路径 datadir  

MySQL配置文件my.cnf设置

转自 http://www.blogjava.net/baoyaer/articles/209466.html 设置建议: 对于单台运行的WEB服务器,建议加上: skip-locking skip-name-resolve skip-networking 在PHP链接数据库时使用"LOCALHOST".这样MySQL 客户端库将覆盖之并尝试连接到本地套接字.( 我们可以从PHP.INI中 代码: ; Default socket name for local MySQL connec

Mysql配置文件my.cnf配置及配置参数详解

Mysql配置文件my.cnf 安装了mysql没有my.cnf文件的情况 1.可以把mysql的示例配置文件,如my-medium.cnf拷贝到/etc/my.cnf,再去修改/etc/my.cnf的配置/usr/share/doc/MySQL-server-5.5.38/my-medium.cnf(Example MySQL config file for medium systems with little memory (32M - 64M) ) 可以通过命令:find / -name 

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

my.cnf是mysql启动时加载的配置文件,一般会放在mysql的安装目录中,用户也可以放在其他目录加载. 安装mysql后,系统中会有多个my.cnf文件,有些是用于测试的. 使用locate my.cnf命令可以列出所有的my.cnf文件 命令 locate my.cnf 输出 1 2 3 4 5 6 7 8 9 10 11 /usr/local/Cellar/mysql/5.6.24/my.cnf /usr/local/Cellar/mysql/5.6.24/mysql-test/inc