#目录和文件
#安装目录
basedir = path
#字符集目录
character-sets-dir = path
#数据目录
datadir = path
#PID文件
pid-file = filename
#C/S间的本地通信套接字文件,默认/var/lib/mysql/mysql.sock文件
socket = filename
#新数据是否开启大小写(1:开 0:关)
lower_case_table_name = 1/0
#语言设置
#数据库or数据表-默认字符集
character-sets-server = name
#数据库or数据表-默认排序方式
collation-server = name
#指定报错信息的-使用语言
lanuage = name
#通信、网络、信息安全
#允许Windows 2000/XP环境下的客户和服务器使用命名管道(named pipe)进行通信。
#默认名MySQL,但可用--socket选项来改变。
enable-named-pipes
#允许/禁止使用LOAD DATA LOCAL语句来处理本地文件。
local-infile [=0]
#启动时自动修复受损的MyISAM数据表[DEFAULT、BACKUP、QUICK和FORCE],与myisamchk程序的同名选项作用相同
myisam-recover [=opt1, opt2, ...]
#老版本算法加密密码-默认MySQL 4.1的新加密算法
old-passwords
#MySQL程序指定一个TCP/IP通信端口
port = 3306
#只有mysql.user数据表上有INSERT权限的用户才能使用GRANT命令;
#这是一种双保险机制(此用户还必须具备GRANT权限才能执行GRANT命令)。
safe-user-create
#使用内存(shared memory)进行通信(仅适用于Windows)。
shared-memory
#共享内存块命名-默认MySQL
shared-memory-base-name = name
#忘记密码时用(允许用户任何用户去修改任何数据库),很危险
skip-grant-tables
#不用高速缓存区来存放(主机名<--->IP地址)对应关系
skip-host-cache
#IP地址不解析为主机名
#与访问控制(mysql.user数据表)有关的检查全部通过IP地址行进。
skip-name-resovle
#只允许一个套接字or命名管道(windows)进行连接
#不允许ICP/IP连接,这提高了安全性
#但阻断了来自网络的外部连接和所有的Java客户程序(Java客户即使在本地连接里也使用TCP/IP)。
skip-networking
#可执行数据库的权限用户,注释:mysqld必须从root账户启动,然后切换其他用户执行
user = mysql
#内存管理、优化、查询缓存区
#单次插入多记录的INSERT命令分配的缓存区长度-默认8M
bulk_insert_buffer_size = 8
#存放索引区块的RAM值-默认8M
key_buffer_size = 8
#JOIN数据列无索引时,分配的缓存区长度-默认128k
join_buffer_size = n
#HEAP数据表的最大长-(默认设置是16M,超出HEAP数据表将被存入一个临时文件,非驻留内存
max_heap_table_size = n
#服务端并发处理的连接上限-默认100
max_connections = n
#允许临时存放在查询缓存区里的查询结果的最大长度-默认设置是1M)
query_cache_limit = n
#查询缓存区的最大长度-默认设置是0,不开辟查询缓存区
query_cache_size = n
#查询缓存区的-工作模式
#| 0 禁用查询缓存区
#| 1 启用查询缓存区(默认设置)
#| 2 "按需分配"模式,只响应SELECT SQL_CACHE命令
query_cache_type = 0/1/2
#顺序读取数据的读操作保留的缓存区的长度(默认设置是128KB
#可用SQL命令SET SESSION read_buffer_size = n命令加以改变
read_buffer_size = n
#类似于read_buffer_size选项,但针对的是按某种特定顺序(比如使用了ORDER BY子句的查询)输出的查询结果(默认设置是256K)
read_rnd_buffer_size = n
#排序操作分配的缓存区的长度(默认设置是2M),若缓存过小,需创建临时缓存文件进行排序
sore_buffer = n
#同时打开的数据表的数量(默认设置是64)
table_cache = n
#临时HEAP数据表的最大长度(默认设置是32M)
#超过这个长度的临时数据表将被转换为MyISAM数据表并存入一个临时文件。
tmp_table_size = n
#日志
#把所有的连接以及所有的SQL命令记入日志(通用查询日志);
#若无file参数,自动在数据库目录创建hostname.log文件
log [= file]
#超过long_query_time变量值的查询命令记入日志(慢查询日志)
#若无file参数,自动在数据库目录创建hostname-slow.log文件
log-slow-queries [= file]
#慢查询的执行用时上限(默认设置是10s)
long_query_time = n
#把慢查询以及执行时没有使用索引的查询命令全都记入日志
long_queries_not_using_indexs
#所有修改sql的命令已二进制写入日志
#(二进制变更日志,binary update log)。
#默认filename.n或默认的hostname.n,
#其中n是一个6位数字的整数(日志文件按顺序编号)。
log-bin [= filename]
##二进制日志功能的索引文件名,默认索引文件与二进制日志文件的名字相同为.index
log-bin-index = filename
#二进制日志文件的最大长度(默认设置是1GB),超量会自动创建新的接续
max_binlog_size = n
#记录指定数据库日志
binlog-do-db = dbname1,dbname2,.....
#忽略记录指定数据库日志
binlog-ignore-db = dbname1,dbname2.....
#日志达到写入次数就写入硬盘(日志信息同步)
# n = 0 默认,由操作系统来负责二进制日志文件的同步工作
# n = 1 是最安全的做法,但效率最低
sync_binlog = n
#记载出错情况的日志文件名(出错日志)。hostname.err
log-update [= file]
#镜像(主控镜像服务器)
#数据库唯一ID,范围[1-2^32次方]
server-id = n
#启用二进制文件,默认filename.n [n为顺序编号]
log-bin = name
#记录指定数据库日志
binlog-do-db = dbname1,dbname2,.....
#忽略记录指定数据库日志
binlog-ignore-db = dbname1,dbname2.....
#镜像(从属镜像服务器)
#数据库唯一ID,范围[1-2^32次方]
server-id = n
#启用节点数据库的日志功能,(A->B->C)镜像链
#若存在mater.info文件,将忽略以下选项
log-slave-updates
#主数据库的:主机名或IP地址,
master-host = hostname
#node数据库连接master数据库的用户名
master-user = replicusername
#node数据库连接master数据库的密码
master-password = passwd
#node数据库连接master数据库的TCP/IP端口(默认设置是3306端口)
master-port = n
#node数据库连接master数据库失败后的等待时间,(默认设置是60s)
master-connect-retry = n
#主从服务器启用ssl通信配置
master-ssl-xxx = xxx
#node数据库是否允许独立执行SQL(默认:0)关闭,SQL来源必须是master
read-only = 0/1。
#从中继日志文件删除执行完的SQL命令(默认:0)
read-log-purge = 0/1
#是否允许通配符"%"存在,(某)数据库名.(所有)数据库表
#test%.%--对名字以"test"开头的所有数据库里的所有数据库表进行镜像处理
replicate-do-table = dbname.tablename
#同步指定数据库
replicate-do-db = name
#排除同步数据表
replicate-ignore-table = dbname.tablename
#该设置过滤数据库表更好
replicate-wild-ignore-table = dbname.tablename
#排除同步数据库
replicate-ignore-db = dbname
#指定master服务器的xxx数据库同步到node服务器的xxx数据库
replicate-rewrite-db = db1name > db2name
#node数据库的主机名,主服务器使用SHOW SLAVE HOSTS可生成从属服务器的名单
report-host = hostname
#主从数据库以压缩格式进行通信,如果都支持
slave-compressed-protocol = 1
#发生出错代码为n1、n2等的错误,不管任何错误,node数据库继续工作
#如果配置得当,从属服务器不应该在执行 SQL命令时发生错误(在主控服务器上执行出错的SQL命令不会被发送到从属服务器上做镜像处理); 如果不使用slave-skip-errors选项,从属服务器上的镜像工作就可能因为发生错误而中断,中断后需要有人工参与才能继续进行。
slave-skip-errors = n1, n2, ...或all
#InnoDB
#基本设置、表空间文件
#不加载InnoDB数据表驱动程序,若不用skip-innodb可节省内存
skip-innodb
#新数据库自动创建表空间文件,默认-中央表空间,该选项始见于MySQL 4.1
innodb-file-per-table
#InnoDB数据表驱动程序并发打开文件数(默认300),若使用innodb-file-per-table,定量很大
innodb-open-file = n
#InnoDB主目录,一般为为mysql的数据目录
innodb_data_home_dir = p
#InnoDB为数据表的表空间容量
#表空间文件的名字必须以分号隔开
#每一个表空间文件的最大长度都必须以字节(B)、兆字节(MB)或千兆字节(GB)为单位给出
#最后一个表空间文件可自定义范围例如,ibdata1:1G; ibdata2:1G:autoextend:max:2G,表空间文件ibdata1的最大长度是1GB,ibdata2的最大长度也是1G,但允许它扩充到2GB
#除文件名外,还可以用硬盘分区的设置名来定义表 空间必须给表空间的最大初始长度值加上newraw关键字做后缀,给表空间的最大扩充长度值加上raw关键字做后缀(例如/dev/hdb1: 20Gnewraw或/dev/hdb1:20Graw); MySQL 4.0及更高版本的默认设置是ibdata1:10M:autoextend。
innodb_data_file_path = ts
#autoextend属性的表空间文件每次加大多少兆字节(默认设置是8MB),#该属性不涉及具体的数据表文件,那些文件的增大速度相对是比较小的。
innodb_autoextend_increment = n
#事务等待N秒仍然无法获取需求资源,则ROLLBACK放弃该事务
#这项设置对于发现和处理未能被InnoDB数据表驱动 程序识别出来的死锁条件有着重要的意义。
#这个选项的默认设置是50s
innodb_lock_wait_timeout = n
#最快速度关闭InnoDB,默认1,即(不把缓存在INSERT缓存区的数据写入数据表)
#数据于下次mysql启动时再写入,数据不会丢失
#选项设置为0时,若系统关机时,InnoDB 驱动程序未完成数据同步,系统会强行关闭导致数据不完整
innodb_fast_shutdown 0/1
#InnoDB--日志
#InnoDB日志文件的目录路径,默认使用MySQL数据目录作为自己保存日志文件的位置
innodb_log_group_home_dir = p
#日志文件数量(默认2),InnoDB数据表驱动程序将以轮转方式依次填写这些文件
##当所有的日志文件都写满以后,之后的日志信息将写入第一个日志文件的最大长度(默认设置是5MB)。
#长度单位以MB(兆字节)或GB(千兆字节)设置
innodb_log_files_in_group = n
#(信息写入文件,文件写入硬盘)工作频率
# 0 间隙1s写入文件, 减少硬盘写操作次数,但可能造成数据丢失;
# 1 每一条COMMIT命令完成写入文件,防止数据丢失,但硬盘写操作可能会很频繁;
# 2 每一条COMMIT命令完成写一次日志,再每隔一秒进行一次写入硬盘。
innodb_flush_log_at_trx_commit = 0/1/2
#InnoDB日志文件的同步办法 [fdatasync/O_DSYNC]仅适用于UNIX/Linux系统
innodb_flush_method = x
#启用InnoDB驱动程序的archive(档案)日志功能,把日志信息写入ib_arch_log_n文件
#InnoDB与 MySQL一起使用时没有多大意义,启用MySQL服务器的二进制日志功能就足够用了
innodb_log_archive = 1
#InnoDB--缓存区的设置和优化
#数据表及其索引而保留的RAM内存量(默认设置是8MB)
###该参数很影响速度,若只运行有 MySQL/InnoDB数据库服务器,应设置全部内存的80%
innodb_log_buffer_pool_size = n
#事务日志文件写操作缓存区的最大长度(默认设置是1MB)
innodb_log_buffer_size = n
#内部管理的各种数据结构分配的缓存区最大长度(默认设置是1MB)
innodb_additional_men_pool_size = n
#I/O操作(硬盘写操作)的最大线程个数(默认设置是4)
innodb_file_io_threads = n
#并发最大线程个数(默认设置是8)
innodb_thread_concurrency = n
#其它选项
#MySQL服务器的IP地址,若有多个IP,该选项很重要
bind-address = ipaddr
#新数据表的默认类型(默认MyISAM)
default-storage-engine = type
#地理时区,(若与本机不同,即可设置)
default-timezone = name
#全文索引的最小单词长度(默认为4),创建全文索引时不考虑那些由3个或更少的字符构建单词
ft_min_word_len = n
#c/s之间交换数据包的最大长度,至少大于客户程序将要处理的最大BLOB块的长度,默认1MB
Max-allowed-packet = n
#以哪种SQL模式下运行
#这个选项的作用是让MySQL与其他的数据库系统保持最大程度的兼容
#这个选项的可取值包括ansi、db2、 oracle、no_zero_date、pipes_as_concat。
Sql-mode = model1, mode2, ...