仓酷云

标题: 发布具体解说MySQL数据库5.0的my.cnf设置选项 [打印本页]

作者: 分手快乐    时间: 2015-1-16 20:13
标题: 发布具体解说MySQL数据库5.0的my.cnf设置选项
WindowsAzureSQLDatabase并不支持数据压缩和表分区之类的功能,而且SQLDatabase支持的Transact-SQL语言只是完整版的一部分。另外,因为解决方案提供商不能控制物理资源,所以他们不能将数据文件和索引分配给特定的硬件。MySQL数据库5.0的my.cnf设置选项概述:
mysqld程序--目次和文件
basedir=path利用给定目次作为根目次(安装目次)。
character-sets-dir=path给出寄存着字符集的目次。
datadir=path从给定目次读取数据库文件。
pid-file=filename为mysqld程序指定一个寄存历程ID的文件(仅合用于UNIX/linux体系);Init-V剧本必要利用这个文件里的历程ID停止mysqld历程。
socket=filename为MySQL客户程序与服务器之间的当地通讯指定一个套接字文件(仅合用于UNIX/Linux体系;默许设置通常为/var/lib/mysql/mysql.sock文件)。
在Windows情况下,假如MySQL客户与服务器是经由过程定名管道举行通讯的,--sock选项给出的将是该定名管道的名字(默许设置是MySQL)。
lower_case_table_name=1/0新目次和数据表的名字是不是只同意利用小写字母;这个选项在Windows情况下的默许设置是1(只同意利用小写字母)。

mysqld程序--言语设置
character-sets-server=name新数据库或数据表的默许字符集。为了与MySQL的初期版本坚持兼容,这个字符集也能够用--default-character-set选项给出;但这个选项已显得有点过期了。
collation-server=name新数据库或数据表的默许排序体例。
lanuage=name用指定的言语显现堕落信息。

mysqld程序--通讯、收集、信息平安
enable-named-pipes同意Windows2000/XP情况下的客户和服务器利用定名管道(namedpipe)举行通讯。这个定名管道的默许名字是MySQL,但能够用--socket选项来改动。
local-infile[=0]同意/克制利用LOADDATALOCAL语句来处置当地文件。
myisam-recover[=opt1,opt2,...]在启动时主动修复一切受损的MyISAM数据表。这个选项的可取值有4种:DEFAULT、BACKUP、QUICK和FORCE;它们与myisamchk程序的同名选项感化不异。
old-passWords利用MySQL3.23和4.0版本中的老算法来加密mysql数据库里的暗码(默许利用MySQL4.1版本入手下手引进的新加密算法)。
port=n为MySQL程序指定一个TCP/IP通讯端口(一般是3306端口)。
safe-user-create只要在mysql.user数据库表上具有INSERT权限的用户才干利用GRANT命令;这是一种双保险机制(此用户还必需具有GRANT权限才干实行GRANT命令)。
shared-memory同意利用内存(sharedmemory)举行通讯(仅合用于Windows)。
shared-memory-base-name=name给共享内存块起一个名字(默许的名字是MySQL)。
skip-grant-tables不利用mysql数据库里的信息来举行会见把持(告诫:这将同意用户任何用户往修正任何数据库)。
skip-host-cache不利用高速缓存区来寄存主机名和IP地点的对应干系。
skip-name-resovle不把IP地点剖析为主机名;与会见把持(mysql.user数据表)有关的反省全体经由过程IP地点行进。
skip-networking只同意经由过程一个套接字文件(Unix/Linux体系)或经由过程定名管道(Windows体系)举行当地毗连,不同意ICP/IP毗连;这进步了平安性,但阻断了来自收集的内部毗连和一切的java客户程序(Java客户即便在当地毗连里也利用TCP/IP)。
user=namemysqld程序在启动后将在给定UNIX/Linux账户下实行;mysqld必需从root账户启动才干在启动后切换到另外一个账户下实行;mysqld_safe剧本将默许利用--user=mysql选项来启动mysqld程序。

mysqld程序--内存办理、优化、查询缓存区
bulk_insert_buffer_size=n为一次拔出多条新纪录的INSERT命令分派的缓存区长度(默许设置是8M)。
key_buffer_size=n用来寄存索引区块的RMA值(默许设置是8M)。
join_buffer_size=n在列入JOIN操纵的数据列没有索引时为JOIN操纵分派的缓存区长度(默许设置是128K)。
max_heap_table_size=nHEAP数据表的最年夜长度(默许设置是16M);凌驾这个长度的HEAP数据表将被存进一个一时文件而不是驻留在内存里。
max_connections=nMySQL服务器同时处置的数据库毗连的最年夜数目(默许设置是100)。
query_cache_limit=n同意一时寄存在查询缓存区里的查询了局的最年夜长度(默许设置是1M)。
query_cache_size=n查询缓存区的最年夜长度(默许设置是0,不启示查询缓存区)。
query_cache_type=0/1/2查询缓存区的事情形式:0,禁用查询缓存区;1,启用查询缓存区(默许设置);2,"按需分派"形式,只呼应SELECTSQL_CACHE命令。
read_buffer_size=n为从数据表按次读取数据的读操纵保存的缓存区的长度(默许设置是128KB);这个选项的设置值在需要时能够用SQL命令SETsessionread_buffer_size=n命令加以改动。
read_rnd_buffer_size=n相似于read_buffer_size选项,但针对的是按某种特定按次(好比利用了ORDERBY子句的查询)输入的查询了局(默许设置是256K)。
sore_buffer=n为排序操纵分派的缓存区的长度(默许设置是2M);假如这个缓存区太小,则必需创立一个一时文件来举行排序。
table_cache=n同时翻开的数据表的数目(默许设置是64)。
tmp_table_size=n一时HEAP数据表的最年夜长度(默许设置是32M);凌驾这个长度的一时数据表将被转换为MyISAM数据表并存进一个一时文件。

mysqld程序--日记
log[=file]把一切的毗连和一切的SQL命令记进日记(通用查询日记);假如没有给出file参数,MySQL将在数据库目次里创立一个hostname.log文件作为这类日记文件(hostname是服务器的主机名)。
log-slow-queries[=file]把实行用时凌驾long_query_time变量值的查询命令记进日记(慢查询日记);假如没有给出file参数,MySQL将在数据库目次里创立一个hostname-slow.log文件作为这类日记文件(hostname是服务器主机名)。
long_query_time=n慢查询的实行用时下限(默许设置是10s)。
long_queries_not_using_indexs把慢查询和实行时没有利用索引的查询命令全都记进日记(其他同--log-slow-queries选项)。
log-bin[=filename]把对数据举行修正的一切SQL命令(也就是INSERT、UPDATE和DELETE命令)以二进制格局记进日记(二进制变动日记,binaryupdatelog)。这类日记的文件名是filename.n或默许的hostname.n,个中n是一个6位数字的整数(日记文件按按次编号)。
log-bin-index=filename二进制日记功效的索引文件名。在默许情形下,这个索引文件与二进制日记文件的名字不异,但后缀名是.index而不是.nnnnnn。
max_binlog_size=n二进制日记文件的最年夜长度(默许设置是1GB)。在前一个二进制日记文件里的信息量凌驾这个最年夜长度之前,MySQL服务器会主动供应一个新的二进制日记文件继续上。
binlog-do-db=dbname只把给定命据库里的变更情形记进二进制日记文件,其他数据库里的变更情形不纪录。假如必要纪录多个数据库里的变更情形,就必需在设置文件利用多个本选项来设置,每一个数据库一行。
binlog-ignore-db=dbname不把给定命据库里的变更情形记进二进制日记文件。
sync_binlog=n每经由n第二天志写操纵就把日记文件写进硬盘一次(对日记信息举行一次同步)。n=1是最平安的做法,但效力最低。默许设置是n=0,意义是由操纵体系来卖力二进制日记文件的同步事情。
log-update[=file]纪录堕落情形的日记文件名(堕落日记)。这类日记功效没法禁用。假如没有给出file参数,MySQL会利用hostname.err作为种日记文件的名字。

mysqld程序--镜像(主控镜像服务器)
server-id=n给服务器分派一个举世无双的ID编号;n的取值局限是1~2的32次方启用二进制日记功效。
log-bin=name启用二进制日记功效。这类日记的文件名是filename.n或默许的hostname.n,个中的n是一个6位数字的整数(日记文件按次编号)。
binlog-do/ignore-db=dbname只把给定命据库里的变更情形记进二进制日记文件/不把给定的数据库里的变更记进二进制日记文件。

mysqld程序--镜像(附属镜像服务器)
server-id=n给服务器分派一个独一的ID编号
log-slave-updates启用附属服务器上的日记功效,使这台盘算机能够用来组成一个镜像链(A->B->C)。
master-host=hostname主控服务器的主机名或IP地点。假如附属服务器上存在mater.info文件(镜像干系界说文件),它将疏忽此选项。
master-user=replicusername附属服务器用来毗连主控服务器的用户名。假如附属服务器上存在mater.info文件,它将疏忽此选项。
master-password=passwd附属服务器用来毗连主控服务器的暗码。假如附属服务器上存在mater.info文件,它将疏忽此选项。
master-port=n附属服务器用来毗连主控服务器的TCP/IP端口(默许设置是3306端口)。
master-connect-retry=n假如与主控服务器的毗连没有乐成,则守候n秒(s)后再举行办理体例(默许设置是60s)。假如附属服务器存在mater.info文件,
它将疏忽此选项。
master-ssl-xxx=xxx对主、从服务器之间的SSL通讯举行设置。
read-only=0/10:同意附属服务器自力地实行SQL命令(默许设置);1:附属服务器只能实行来自立控服务器的SQL命令。
read-log-purge=0/11:把处置完的SQL命令立即从中继日记文件里删除(默许设置);0:不把处置完的SQL命令立即从中继日记文件里删除。
replicate-do-table=dbname.tablename与--replicate-do-table选项的寄义和用法不异,但数据库和数据库表名字里同意呈现通配符"%"

(比方:test%.%--对名字以"test"开首的一切数据库里的以是数据库表举行镜像处置)。
replicate-do-db=name只对这个数据库举行镜像处置。
replicate-ignore-table=dbname.tablename不合错误这个数据表举行镜像处置。
replicate-wild-ignore-table=dbn.tablen不合错误这些数据表举行镜像处置。
replicate-ignore-db=dbname不合错误这个数据库举行镜像处置。
replicate-rewrite-db=db1name>db2name把主控数据库上的db1name数据库镜像处置为附属服务器上的db2name数据库。
report-host=hostname附属服务器的主机名;这项信息只与SHOWSLAVEHOSTS命令有关--主控服务器能够用这条命令天生一份附属服务器的名单。
slave-comPRessed-protocol=1主、从服务器利用紧缩格局举行通讯--假如它们都撑持这么做的话。
slave-skip-errors=n1,n2,...或all即便产生堕落代码为n1、n2等的毛病,镜像处置事情也持续举行(即不论产生甚么毛病,镜像处置事情也持续举行)。
假如设置妥当,附属服务器不该该在实行SQL命令时产生毛病(在主控服务器上实行堕落的SQL命令不会被发送到附属服务器上做镜像处置);假如不利用
slave-skip-errors选项,附属服务器上的镜像事情便可能国为产生毛病而中止,中止后必要有野生介入才干持续举行。

mysqld--InnoDB--基础设置、表空间文件
skip-innodb不加载InnoDB数据表驱动程序--假如用不着InnoDB数据表,能够用这个选项节俭一些内存。
innodb-file-per-table为每个新数据表创立一个表空间文件而不是把数据表都会合保留在中心表空间里(后者是默许设置)。该选项始见于MySQL4.1。
innodb-open-file=nInnoDB数据表驱动程序最多能够同时翻开的文件数(默许设置是300)。假如利用了innodb-file-per-table选项而且必要同时翻开良多
数据表的话,这个数字极可能必要加年夜。
innodb_data_home_dir=pInnoDB主目次,一切与InnoDB数据表有关的目次或文件路径都相对这个路径。在默许的情形下,这个主目次就是MySQL的数据目次。
innodb_data_file_path=ts用来包容InnoDB为数据表的表空间:大概触及一个以上的文件;每个表空间文件的最年夜长度都必需以字节(B)、兆字节(MB)或
千兆字节(GB)为单元给出;表空间文件的名字必需以分号离隔;最初一个表空间文件还能够带一个autoextend属性和一个最年夜长度(max:n)。
比方,ibdata1:1G;ibdata2:1G:autoextend:max:2G的意义是:表空间文件ibdata1的最年夜长度是1GB,ibdata2的最年夜长度也是1G,但同意它扩大到2GB。
除文件名外,还能够用硬盘分区的设置名来界说表空间,此时必需给表空间的最年夜初始长度值加上newraw关头字做后缀,给表空间的最年夜扩大长度值加上
raw关头字做后缀(比方/dev/hdb1:20Gnewraw或/dev/hdb1:20Graw);MySQL4.0及更高版本的默许设置是ibdata1:10M:autoextend。
innodb_autoextend_increment=n带有autoextend属性的表空间文件每次加年夜几兆字节(默许设置是8MB)。这个属性不触及详细的数据表文件,那些文件的
增年夜速率绝对是对照小的。
innodb_lock_wait_timeout=n假如某个事件在守候n秒(s)后还没有取得所必要的资本,就利用ROLLBACK命令保持这个事件。这项设置关于发明和处置未能被
InnoDB数据表驱动程序辨认出来的逝世锁前提有侧重要的意义。这个选项的默许设置是50s。
innodb_fast_shutdown0/1是不是以最快的速率封闭InnoDB,默许设置是1,意义是不把缓存在INSERT缓存区的数据写进数据表,那些数据将在MySQL服务器下次
启动时再写进(这么做没有甚么风险,由于INSERT缓存区是表空间的一个构成部分,数据不会丧失)。把这个选项设置为0不和伤害,由于在盘算构造闭时,
InnoDB驱动程序极可能没有充足的工夫完成它的数据同步事情,操纵体系大概会在它完成数据同步事情之前强行停止InnoDB,而这会招致数据不完全。

mysqld程序--InnoDB--日记
innodb_log_group_home_dir=p用来寄存InnoDB日记文件的目次路径(如ib_logfile0、ib_logfile1等)。在默许的情形下,InnoDB驱动程序将利用MySQL数据目
录作为本人保留日记文件的地位。
innodb_log_files_in_group=n利用几个日记文件(默许设置是2)。InnoDB数据表驱动程序将以轮转体例顺次填写这些文件;当一切的日记文件都写满今后,
以后的日记信息将写进第一个日记文件的最年夜长度(默许设置是5MB)。这个长度必需以MB(兆字节)或GB(千兆字节)为单元举行设置。
innodb_flush_log_at_trx_commit=0/1/2这个选项决意着甚么时分把日记信息写进日记文件和甚么时分把这些文件物理地写(术语称为"同步")到硬盘上。
设置值0的意义是每隔一秒写一第二天志并举行同步,这能够削减硬盘写操纵次数,但大概形成数据丧失;设置值1(设置设置)的意义是在每实行完一条COMMIT
命令就写一第二天志并举行同步,这能够避免数据丧失,但硬盘写操纵大概会很频仍;设置值2是一样平常折中的举措,即每实行完一条COMMIT命令写一第二天志,
每隔一秒举行一次同步。
innodb_flush_method=xInnoDB日记文件的同步举措(仅合用于UNIX/Linux体系)。这个选项的可取值有两种:fdatasync,用fsync()函数举行同步;O_DSYNC,
用O_SYNC()函数举行同步。
innodb_log_archive=1启用InnoDB驱动程序的archive(档案)日记功效,把日记信息写进ib_arch_log_n文件。启用这类日记功效在InnoDB与MySQL一同利用时没有
多粗心义(启用MySQL服务器的二进制日记功效就充足用了)。

mysqld程序--InnoDB--缓存区的设置和优化
innodb_log_buffer_pool_size=n为InnoDB数据表及其索引而保存的RAM内存量(默许设置是8MB)。这个参数对速率有着相称年夜的影响,假如盘算机上只运转有
MySQL/InnoDB数据库服务器,就应当把全体内存的80%用于这个用处。
innodb_log_buffer_size=n事件日记文件写操纵缓存区的最年夜长度(默许设置是1MB)。
innodb_additional_men_pool_size=n为用于外部办理的各类数据布局分派的缓存区最年夜长度(默许设置是1MB)。
innodb_file_io_threads=nI/O操纵(硬盘写操纵)的最年夜线程个数(默许设置是4)。
innodb_thread_concurrency=nInnoDB驱动程序可以同时利用的最年夜线程个数(默许设置是8)。

mysqld程序--别的选项
bind-address=ipaddrMySQL服务器的IP地点。假如MySQL服务器地点的盘算机有多个IP地点,这个选项将十分主要。
default-storage-engine=type新数据表的默许数据表范例(默许设置是MyISAM)。这项设置还能够经由过程--default-table-type选项来设置。
default-timezone=name为MySQL服务器设置一个地舆时区(假如它与当地盘算机的地舆时区纷歧样)。
ft_min_word_len=n全文索引的最小单词长度工。这个选项的默许设置是4,意义是在创立全文索引时不思索那些由3个或更少的字符构建单词。
Max-allowed-packet=n客户与服务器之间互换的数据包的最年夜长度,这个数字最少应当年夜于客户程序将要处置的最年夜BLOB块的长度。这个选项的默许设置是1MB。
Sql-mode=model1,mode2,...MySQL将运转在哪种SQL形式下。这个选项的感化是让MySQL与其他的数据库体系坚持最年夜水平的兼容。这个选项的可取值包含
ansi、db2、Oracle、no_zero_date、pipes_as_concat。

注重:假如在设置文件里给出的某个选项是mysqld没法辨认的(如,由于犯了一个愚昧的打字毛病),MySQL服务器将不启动。
应用程序需要使用数据库,数据库本身需要设计、开发和部署。还有MySQL学习教程,客户怎样实施混合系统,或者需要帮助管理多个云服务?
作者: 若天明    时间: 2015-1-18 18:52
可以动态传入参数,省却了动态SQL的拼写。
作者: 变相怪杰    时间: 2015-1-25 15:51
只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。
作者: admin    时间: 2015-2-3 06:06
需要注意的一点,也是我使用过程中发现的一个问题。在建立function->schema->table后,如果在现有的分区表上建立没有显式声明的聚集索引时,分区表会自动变为非分区表。这一点很让我纳闷。
作者: 透明    时间: 2015-2-8 20:03
在select语句中可以使用groupby子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。
作者: 仓酷云    时间: 2015-2-26 03:08
光写几个SQL实在叫无知。
作者: 飘飘悠悠    时间: 2015-3-8 11:34
入门没那么困难,精通没那么容易
作者: 老尸    时间: 2015-3-15 22:26
XML字段类型更好的解决了XML数据的操作。XQuery确实不错,但是个人对其没好感。(CSDN的开发者应该是相当的熟了!)
作者: 分手快乐    时间: 2015-3-22 17:10
如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2