|
MySQL安装成功后有几个默认的配置模板,列表如下: my-huge.cnf : 用于高端产品服务器,包括1到2GB RAM,主要运行mysql my-innodb-heavy-4G.ini : 用于只有innodb的安装,最多有4GB RAM,支持大的查询和低流量 my-large.cnf : 用于中等规模的产品服务器,包括大约512M RAM my-medium.cnf : 用于低端产品服务器,包括很少内存(少于128M) my-small.cnf : 用于最低设备的服务器,只有一点内存(少于512M)
my.cnf具体的配置说明如下:
?
| 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 |
允许Windows 2000/XP环境下的客户和服务器使用命名管道(named pipe)进行通信。这个命名管道的默认名字是MySQL,但可以用–socket选项来改变。 |
| local-infile [=0] |
允许/禁止使用LOAD DATA LOCAL语句来处理本地文件。 |
| myisam-recover [=opt1, opt2, ...] |
在启动时自动修复所有受损的MyISAM数据表。这个选项的可取值有4种:DEFAULT、BACKUP、QUICK和FORCE; 它们与myisamchk程序的同名选项作用相同。 |
| old-passwords |
使用MySQL 3.23和4.0版本中的老算法来加密mysql数据库里的密码(默认使用MySQL 4.1版本开始引入的新加密算法)。 |
| port = n |
为MySQL程序指定一个TCP/IP通信端口(通常是3306端口)。 |
| safe-user-create |
只有在mysql.user数据库表上拥有INSERT权限的用户才能使用GRANT命令; 这是一种双保险机制(此用户还必须具备GRANT权限才能执行GRANT命令)。 |
| shared-memory |
允许使用内存(shared memory)进行通信(仅适用于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 = name |
mysqld程序在启动后将在给定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 = n |
HEAP数据表的最大长度(默认设置是16M); 超过这个长度的HEAP数据表将被存入一个临时文件而不是驻留在内存里。 |
| max_connections = n |
MySQL服务器同时处理的数据库连接的最大数量(默认设置是100)。 |
| query_cache_limit = n |
允许临时存放在查询缓存区里的查询结果的最大长度(默认设置是1M)。 |
| query_cache_size = n |
查询缓存区的最大长度(默认设置是0,不开辟查询缓存区)。 |
| query_cache_type = 0/1/2 |
查询缓存区的工作模式:0, 禁用查询缓存区; 1,启用查询缓存区(默认设置); 2,”按需分配”模式,只响应SELECT SQL_CACHE命令。 |
| read_buffer_size = n |
为从数据表顺序读取数据的读操作保留的缓存区的长度(默认设置是128KB); 这个选项的设置值在必要时可以用SQL命令SET SESSION read_buffer_size = n命令加以改变。 |
| read_rnd_buffer_size = n |
类似于read_buffer_size选项,但针对的是按某种特定顺序(比如使用了ORDER BY子句的查询)输出的查询结果(默认设置是256K)。 |
| sore_buffer = n |
为排序操作分配的缓存区的长度(默认设置是2M); 如果这个缓存区太小,则必须创建一个临时文件来进行排序。 |
| table_cache = n |
同时打开的数据表的数量(默认设置是64)。 |
| tmp_table_size = n |
临时HEAP数据表的最大长度(默认设置是32M); 超过这个长度的临时数据表将被转换为MyISAM数据表并存入一个临时文件。 |
mysqld程序:日志
?
| log [= file] |
把所有的连接以及所有的SQL命令记入日志(通 |
|