mysql配置文件参考

时间:2022-12-10 21:39:41

[client]

default-character-set = utf8

port = 3306

socket = /tmp/mysql.sock

# *** [mysql]内容放入/etc/my.cnf中才会生效 ***

[mysql]

prompt=(\\u@\h)[\d]> #prompt是设置提示符用的,让你随时可以知道你在那个机器,那个库,时间等等。

no-auto-rehash #不让MySQL自动提示,这样对MySQL客户端有点慢。

show-warnings #可以让MySQL执行SQL出现warning的时候,把warning也打印出来

[mysqld]

port = 端口

socket = /freewil/mysql/端口/data/mysql.sock #sock路径

datadir = /freewil/mysql/端口/data #数据路径

log-bin = /freewil/mysql/端口/data/mysql-synbin #binlog路径

log_slow_queries = /var/log/slowlog/端口.log #慢查询保存路径

long_query_time = 2 #不要在这里使用”1″, 否则会导致所有的查询,甚至非常快的查询页被记录下来,单位秒

ft_min_word_len = 2 #分词设置

local-infile=0 #禁用load data infile

sql-mode=”NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION” #不自动增加用户,不自动提交

# *** 同步设置 相关选项 ***

server-id = 2183000 #相当于机器标识符,server-id必须要唯一

master-host = ip #主的host、user、pwd、port

master-user = 用户名

master-password = 密码

master-port = 端口

log-slave-updates #将主数据库上的日志同步过来

sync_binlog=1 #执行一条数据后刷新

auto_increment_increment=2 #自增长ID,必须相同,两台就为2,三台就为3,如果就主从就可以不设置

auto_increment_offset=1 #自增长的起始位置这里为1,第二台就必须为2

replicate-ignore-db = mysql #不允许同步的数据库

replicate-do-db = opococ2mod #允许同步的数据库

replicate-do-db = storage_index #允许同步的数据库

relay-log = relay #如果同步失败,可以从中继日志中执行恢复操作,一般不会使用到

relay-log-purge = 1 #自动删除这些relay-log

#slave-skip-errors = all #all它能忽略所有的错误信息,不管什么情况都继续保持同步[慎用],一般关闭

slave-net-timeout=60 #设置网络延时

master-connect-retry=60 #网络断了之后重联的时间

expire-logs-days=60 #日志文件失效时间,保存60天

max_binlog_size=512M #binlog最大大小

binlog_cache_size=4M #binlog缓存大小

max_binlog_cache_size=8M #binlog最大缓存大小

#default-character-set = utf8

user = mysql

basedir = /usr/local/mysql5

open_files_limit = 10240

# back_log 是操作系统在监听队列中所能保持的连接数,

# 队列保存了在MySQL连接管理器线程处理之前的连接.

# 如果你有非常高的连接率并且出现”connection refused” 报错,

# 你就应该增加此处的值.

# 检查你的操作系统文档来获取这个变量的最大值.

# 如果将back_log设定到比你操作系统限制更高的值,将会没有效果

back_log = 600

# MySQL 服务所允许的同时会话数的上限

# 其中一个连接将被SUPER权限保留作为管理员登录.

# 即便已经达到了连接数的上限.

max_connections = 3000

# 每个客户端连接最大的错误允许数量,如果达到了此限制.

# 这个客户端将会被MySQL服务阻止直到执行了”FLUSH HOSTS” 或者服务重启

# 非法的密码以及其他在链接时的错误会增加此值.

# 查看 “Aborted_connects” 状态来获取全局计数器.

max_connect_errors = 6000

# 所有线程所打开表的数量.

# 增加此值就增加了mysqld所需要的文件描述符的数量

# 这样你需要确认在[mysqld_safe]中 “open-files-limit” 变量设置打开文件数量允许至少4096

table_cache = 614

# 允许外部文件级别的锁. 打开文件锁会对性能造成负面影响

# 所以只有在你在同样的文件上运行多个数据库实例时才使用此选项(注意仍会有其他约束!)

# 或者你在文件层面上使用了其他一些软件依赖来锁定MyISAM表

external-locking = FALSE

# 服务所能处理的请求包的最大大小以及服务所能处理的最大的请求大小(当与大的BLOB字段一起工作时相当必要)

# 每个连接独立的大小.大小动态增加

max_allowed_packet = 32M

# 我们在cache中保留多少线程用于重用

# 当一个客户端断开连接后,如果cache中的线程还少于thread_cache_size,

# 则客户端线程被放入cache中.

# 这可以在你需要大量新连接的时候极大的减少线程创建的开销

# (一般来说如果你有好的线程模型的话,这不会有明显的性能提升.)

thread_cache_size = 300

# 在InnoDb核心内的允许线程数量.

# 最优值依赖于应用程序,硬件以及操作系统的调度方式.

# 过高的值可能导致线程的互斥颠簸.

thread_concurrency = 8

# 查询缓冲常被用来缓冲 SELECT 的结果并且在下一次同样查询的时候不再执行直接返回结果.

# 打开查询缓冲可以极大的提高服务器速度, 如果你有大量的相同的查询并且很少修改表.

# 查看 “Qcache_lowmem_prunes” 状态变量来检查是否当前值对于你的负载来说是否足够高.

# 注意: 在你表经常变化的情况下或者如果你的查询原文每次都不同,

# 查询缓冲也许引起性能下降而不是性能提升.

query_cache_size = 32M

# 只有小于此设定值的结果才会被缓冲

# 此设置用来保护查询缓冲,防止一个极大的结果集将其他所有的查询结果都覆盖.

query_cache_limit = 2M

#查询缓存最小模块

query_cache_min_res_unit = 2k

#默认存储引擎

default-storage-engine = MyISAM

# 当创建新表时作为默认使用的表类型,

# 如果在创建表示没有特别执行表类型,将会使用此值

default_table_type = MyISAM

# 线程使用的堆大小. 此容量的内存在每次连接时被预留.

# MySQL 本身常不会需要超过64K的内存

# 如果你使用你自己的需要大量堆的UDF函数

# 或者你的操作系统对于某些操作需要更多的堆,

# 你也许需要将其设置的更高一点.

thread_stack = 256K

# 设定默认的事务隔离级别.可用的级别如下:

# READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE

transaction_isolation = READ-COMMITTED

# 内部(内存中)临时表的最大大小

# 如果一个表增长到比此值更大,将会自动转换为基于磁盘的表.

# 此限制是针对单个表的,而不是总和.

tmp_table_size = 246M

# 独立的内存表所允许的最大容量.

# 此选项为了防止意外创建一个超大的内存表导致永尽所有的内存资源.

max_heap_table_size = 246M

# 在慢速日志中记录更多的信息.

# 一般此项最好打开.

# 打开此项会记录使得那些没有使用索引的查询也被作为到慢速查询附加到慢速日志里

log_long_format

#binlog语句执行记录模式

binlog_format = MIXED

#sort_buffer_size – 1M for 1GB, 2M for 2GB, 4M for 4GB

sort_buffer_size = 6M

#join_buffer_size – 1M for 1GB, 2M for 2GB, 4M for 4GB

join_buffer_size = 6M

#key_buffer – 64M for 1GB, 128M for 2GB, 256 for 4GB

key_buffer_size = 256M

#read_buffer_size – 1M for 1GB, 2M for 2GB, 4M for 4GB

read_buffer_size = 2M

#read_rnd_buffer_size – 768K for 1GB, 1536K for 2GB, 3072K for 4GB

read_rnd_buffer_size = 16M

#myisam_sort_buffer_size – 32M for 1GB, 64M for 2GB, 128 for 4GB

myisam_sort_buffer_size = 128M


# MyISAM 使用特殊的类似树的cache来使得突发插入

# (这些插入是,INSERT … SELECT, INSERT … VALUES (…), (…), …, 以及 LOAD DATA

# INFILE) 更快. 此变量限制每个进程中缓冲树的字节数.

# 设置为 0 会关闭此优化.

# 为了最优化不要将此值设置大于 “key_buffer_size”.

# 当突发插入被检测到时此缓冲将被分


bulk_insert_buffer_size = 64M

# MySQL重建索引时所允许的最大临时文件的大小 (当 REPAIR, ALTER TABLE 或者 LOAD DATA INFILE).

# 如果文件大小比此值更大,索引会通过键值缓冲创建(更慢)

myisam_max_sort_file_size = 10G

# 如果一个表拥有超过一个索引, MyISAM 可以通过并行排序使用超过一个线程去修复他们.

# 这对于拥有多个CPU以及大量内存情况的用户,是一个很好的选择.

myisam_repair_threads = 1

#等待延时

wait_timeout = 20

#网络连接延时

interactive_timeout = 20

# 自动检查和修复没有适当关闭的 MyISAM 表.

myisam_recover

#不让DNS解析

skip-name-resolve

#关闭Innodb表结构

skip-innodb

#避免MySQL的外部锁定,减少出错几率增强稳定性。

skip-locking

# *** INNODB 相关选项 ***

innodb_additional_mem_pool_size = 16M

innodb_buffer_pool_size = 2048M

innodb_data_file_path = ibdata1:1024M:autoextend

innodb_file_io_threads = 4

innodb_thread_concurrency = 8

innodb_flush_log_at_trx_commit = 2

innodb_log_buffer_size = 16M

innodb_log_file_size = 128M

innodb_log_files_in_group = 3

innodb_max_dirty_pages_pct = 90

innodb_lock_wait_timeout = 120

innodb_file_per_table = 0

[mysqldump]

quick

max_allowed_packet = 32M