13.4 更改MySQL的配置
在实际使用的过程中,可能根据实际需要来更改MySQL配置参数,MySQL提供了两个更改配置的方式:一种是通过配置向导来更改,另一种是手工修改配置文件来更改配置。对于刚接触MySQL的开发人员,不建议修改配置文件。本节将介绍使用图形化的向导工具来更改配置。
13.4.1 通过配置向导来更改配置
MySQL配置向导(MySQL Server Instance Configuration Wizard)提供了自动配置服务的过程,通过选择向导中的选项,可以创建定制的配置文件(my.ini或者my.cnf)。配置向导实例包含在MySQL 5.5服务器中,目前只适用于Windows用户。
一般当MySQL安装完成退出时,在MySQL安装过程中可以启动MySQL配置向导。当安装服务器之后,需要修改配置文件时,可以在MySQL的bin目录下直接双击打开,如图13-40所示。
具体的配置步骤如下。
01 进入MySQL安装bin目录,直接启动MySQLInstanceConfig.exe文件,进入配置对话框,如图13-41所示。
02 单击【Next】按钮,进入维护选项对话框,如图13-42所示。要想重新配置已有的服务器,选择【Reconfigure Instance】选项并单击【Next】按钮。已有的my.ini文件重新命名为mytimestamp.ini.bak,其中timestamp是my.ini文件创建时的日期和时间。配置完成后,将会生成带有新的配置参数的my.ini文件。要想卸载已有的服务器实例,选择【Remove Instance】选项并单击【Next】按钮。
如果选择了【Remove Instance】选项,则进入确认窗口。单击【Execute】按钮,MySQL配置向导停止并卸载MySQL服务,然后删除my.ini文件。服务器安装目录和data目录不删除。
03 选中【Reconfigure Instance】单选按钮,单击【Next】按钮,进入配置过程。
接下来的配置过程和13.2.2节的过程基本相同,读者可以仿照13.2.2节的步骤进行配置。
提 示
唯一不太一样的是安全选项对话框,在重新配置的时候,在这个对话框中需要输入当前密码和修改后的密码,如图13-43所示。
其中,在【Current root password 】文本框输入当前密码,在【New root password】文本框输入新密码,在【Confirm】文本框再次输入新密码,单击【Next】按钮,后面的操作与13.2.2节相同。这里不再赘述。
13.4.2 手工更改配置
对于MySQL初学者,可以很方便地使用图形化的配置向导工具,但是要想学好用好MySQL数据库,学习手工更改配置,将加深对数据库的理解,而且这种方式更加灵活和高效,但需要了解各个参数的含义,因此有一定的难度。下面介绍如何手工更改配置。
在进行配置之前,首先了解一下MySQL提供的二进制安装代码包所创建的默认目录布局。在Windows中,MySQL 5.5的默认安装路径是“C:\Program Files\MySQL\MySQL Server 5.5”,安装目录包括以下子目录,如表13-1所示。
目录 | 目录内容 |
bin | 客户端程序和mysqld服务器 |
C:\Documents and Settings\AllUsers\Application Data\MySQL | 日志文件,数据库 |
examples | 示例程序和脚本 |
include包含(头)文件 | lib库 |
scripts | 实用工具脚本 |
不同MySQL版本下的目录布局,会有稍微的差异,但基本都包含上述几个子目录,在这几个文件夹以外,还有几个名称不同的.ini类型的配置文件。不同文件分别提供不同数据库类型的配置参数模板,如表13-2所示。
模板 | 说明 |
my.ini | 当前应用的配置文件 |
my-huge.ini | 针对非常大型系统的MySQL配置文件例子 |
my-innodb-heavy-4G.ini | 针对4G内存系统(主要运行只有InnoDB表的MySQL并使用几个连接数执行复杂的查询)的MySQL配置文件例子 |
my-large.ini | 针对一个内存为1~2G的大系统,系统主要运行MySQL |
my-medium.ini | 针对中等系统的MySQL配置文件例子 |
my-small.ini | 针对小系统的MySQL配置文件例子 |
MySQL数据库使用my.ini文件中的配置参数,下面对配置文件中的参数进行简单介绍。
# MySQL 客户端参数 [client] #用户登录密码 #password=your_password #数据库连接端口 port=3306 # MySQL 服务器端参数 [mysqld] # MySQL服务程序TCP/IP监听端口(通常是3306端口) port=3306 #使用给定目录作为根目录(安装目录) basedir="C:/Program Files/MySQL/MySQL Server 5.5/" #给定读取数据库文件的目录 datadir="C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.5/Data/" #新数据表的默认存储引擎 default-storage-engine=INNODB # MySQL服务器同时处理的数据库连接的最大数量 max_connections=100 #允许临时存放在查询缓存区里的查询结果的最大长度 query_cache_size=0 #同时打开的数据表的数量 table_cache=256 #临时HEAP数据表的最大长度 tmp_table_size=17M #服务器线程缓存数量 thread_cache_size=8 # ***MyISAM 指定参数*** #当重建索引时,MySQL 允许使用的临时文件的最大大小 myisam_max_sort_file_size=100G # MySQL 需要重建索引,以及 LOAD DATA INFILE 到一个空表时,缓冲区的大小 myisam_sort_buffer_size=34M #关键词缓冲区大小,用来为 MyISAM 表缓存索引块 key_buffer_size=25M #排序好的数据存储缓冲区大小 read_rnd_buffer_size=256K #排序缓冲区大小 sort_buffer_size=256K #进行 MyISAM 表全表扫描的缓冲区大小 read_buffer_size = 256K #*** 通用配置选项*** #服务器可以处理的一个查询包的最大容量 max_allowed_packet = 1M #所有线程打开表的数量 table_open_cache = 64 #*** INNODB 指定参数*** # InnoDB 表空间文件存储位置 innodb_data_home_dir = C:\\mysql\\data\ #用来容纳InnoDB为数据表的表空间: 可能涉及一个以上的文件; 每一个表空间文件的最大长度 #都必须以字节(B)、兆字节(MB)或千兆字节(GB)为单位给出; 表空间文件的名字必须以分号隔开; #最后一个表空间文件还可以带一个autoextend属性和一个最大长度(max:n)。 #例如,ibdata1:1G; ibdata2:1G:autoextend:max:2G的意思: 表空间文件ibdata1的 #最大长度是1GB,ibdata2的最大长度也是1G,但允许它扩充到2GB innodb_data_file_path = ibdata1:10M:autoextend #用来存放InnoDB日志文件的目录路径 innodb_log_group_home_dir = C:\\mysql\\data\ # InnoDB用来缓存索引和行数据的缓冲池大小 innodb_buffer_pool_size = 16M # InnoDB 用来存储元数据信息的附加内存池 innodb_additional_mem_pool_size = 2M #每个日志文件的大小 innodb_log_file_size = 5M # InnoDB存储日志数据的缓冲池的大小 innodb_log_buffer_size = 8M #决定着什么时候把日志信息写入日志文件以及什么时候把这些文件物理地写(术语称为"同步")到 #硬盘上,可以设定的值有3个:0,1,2 innodb_flush_log_at_trx_commit = 1 # InnoDB 事务应等待的在回滚之前被授权锁定的时长 innodb_lock_wait_timeout = 50
不建议使用源码包进行安装。