2.3更改MySQL的配置
MySQL数据库安装好了以后,可能会根据实际情况更改MySQL的某些配置。一般可以通过两种方式来更改。一种是通过配置向导来更改配置,另一种是手工来更改配置。本节将为读者详细介绍更改MySQL配置的方法。
2.3.1通过配置向导来更改配置
MySQL提供了一个人性化的配置向导。通过配置向导可以很方便进行配置。对于初级用户而言,这种配置的方式很容易使用。本小节将为读者介绍使用配置向导来更改配置的方法。
MySQL的配置向导在【开始】|【所有程序】|MySQL|MySQLServer5.1中。在该位置可以看到 MySQL Command Line Client、MySQL Server Instance Config Wizard 和 SunInventory Registration。这3个内容的介绍如下:
MySQL Command Line Client是MySQL客户端的命令行,通过该命令行可以登录到MySQL数据库中。然后可以在该命令行中执行SQL语句、操作数据库等。
MySQL Server Instance Config Wizard 是配置向导。通过该向导可以配置MySQL数据库的各种配置。
SunInventory Registration 是注册的网页链接。
通过配置向导进行配置的操作如下:
(1)单击MySQL Server Instance Conflg Wizard命令,将进入到配置的欢迎窗口。
(2)单击Next按钮,将进入到选择配置选项的窗口,如图所示。
该窗口中有两 个选项,分别是Reconfigure Instance和Remove Instance两个选项。两个选项的说明如下:
Reconfigure Instance,为重新配置实例。选择该项后,可以对MySQL的各项参数进行配置。
Remove Instance,为删除实例。选择该项后,将会删除之前对MySQL服务的配置。删除之后,MySQL服务将会停止。但是,这个操作不会删除MySQL的所有安装文件。如果还想恢复之前的状态,可以再次单击MySQL Server Instance Config Wizard按钮,来进行配置。
(3)选择【Reconfigure Instance】选项,然后单击【Next】按钮进入配置过程。接下来的配置过程与“安装MYSQL”的配置过程大致相同,读者可以根据“启动服务并登录MySQL数据库的步骤”来进行配置。其中配置过程几乎都是一样的,只有该处有所不同(如下图)。因为上节此处是第 一次安装,所以只需要输入两次密码即 可,而在重新配置时,需要输入旧密码, 然后输入两次新密码,如图所示。
图中可以看到Modify Security Settings选项下面有3个文本框。 Current root password后面的文本框要输入当前root权限的密码,New root password后的文本框要输入新的密码; Confirm后的文本框中需要确认新密码;然后单击Next按钮, 可以进行下一步操作。剩下的操作与“安装MYSQL”的操作一样。
2.3.2手工更改配置
用户可以通过修改MySQL配置文件的方式来进行配置。这种配置方式更加灵活,但是相对来说比较难。初级用户可以通过手工配置的方式来学习MySQL的配置。这样可以了解的更加透彻。本小节将向读者介绍手工更改配置的方法。
在进行手工配置之前,读者需要对MySQL的文件有所了解。前面已经介绍过,MySQL 的文件安装在C:\Program Files\MySQL\MySQL Server 5.1这个目录下。而MySQL数据库的数据文件安装在 C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.1\data目录下。这些都是在安装时就设置好了的。
安装文件夹中有4个文件夹和若干文件。这4个文件夹分别是bin、include、lib和share。 下面分别对这4个文件夹进行介绍。
bin文件夹下都是可执行文件,如mysql.exe、mysqld.exe和myslqadmin.exe等;
include文件夹下都是头文件,如decimal.h errmsg.h和mysql.h等;
lib文件夹下都是库文件。该文件夹下有两个文件夹,分别是opt和plugin;
share文件夹下是字符集、语言等信息。
因为安装的是Windows Essentials的软件包,所以不包含Embedded和sql-bench这些文件夹。除了这4个文件夹以外,还有几个后缀名为.ini的文件。不同的.ini文件代表不同的意思。其中只有my.ini是正在使用的配置文件。其他.ini文件都是适合不同数据库的配置文件的模板。文件名中的单词说明了其适合的数据库的类型。下面分别进行介绍。
my.ini是MySQL数据库中使用的配置文件。修改这个文件可以达到更新配置的目的;
my-huge.ini是适合超大型数据库的配置文件;
my-large.ini是适合大型数据库的配置文件;
my-medium.ini是适合中型数据库的配置文件;
my-small.ini是适合小型数据库的配置文件;
my-template.ini是配置文件的模板。MySQL配置向导将该配置文件中选择项写入到my.ini文件中;
my-innodb-heavy-4G.ini表示该配置文件只对于IrmoDB存储引擎有效,而且服务器的内存不能小于4GB。
MySQL数据库中使用的配置文件是my.ini。因此,只要修改my.ini中的内容就可以达到更改配置的目的。下面是my.ini中的主要内容。
#MySQL Server Instance Configuration File #------------------------------------------------------------- #Generated by the MySQL Server Instance Configuration Wizard #该文件是使用MySQL配置向导后生成的 #CLIENT SECTION #------------------------------------------------------------- #The following options will be read by MySQL client applications. #下面将会是客户端的各个参数的介绍。[client]和[[mysql]都是客户端的。 [client] #passwprd参数表示用户的登录密码。用户可以将密码存入该文件中,登录时就可以不用输入密码了。 #password= your_password #port参数表示MYSQL数据库的端口。默认端口是3306。如果读者希望更改端口,可以直接在下面修改。 port=3306 [mysql] #default-character-set参数是客户端的默认字符集。这个字符集是客户端的。现在该参数的值是latin1。 #如果希望其支持中文,可以将该参数的值设置为gbk或者utf8等。 default>character-set=latin1 #下面是服务器端各个参数的介绍。[0^39丨切表示下面的内容属于服务器端。 #SERVER SECTION [mysqld] #port参数表示MySQ数据库的端口。默认端口是3306。 port=3306 #basedir参数表示MySQL的安装路径。此处显示安装路径为 C:/Program Files/MySQL/MySQL Server 5.1/ basedir="C:/Program Files/MySQL/MySQL Server 5.1/" #datadir参数表示MySQL数据文件的存储位置。 #datadir="C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.1/Data/" #default-character-set参数表示默认的字符集。这个字符集是服务器端的。改变字符集的方法与上面一样。 default-character-set=latin 1 #default-storage-engine参数表示默认的存储引擎。存储引擎表示数据的存储方式,在后面会详细的讲解。 #如果希望改变默认的存储引擎,可以直接在这后面修改。 default-storage-engine=INNODB #sql-mode参数表示SQL模式的参数。通过这个参数,可以设置检验SQL语句的严格程度。 sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" #max_connections参数表示允许同时访问MySQL/服务器的最大连接数。其中一个连接将保留,作为管理员登录。 #如果希望改变最大连接数,可以在此处进行修改。 max_connections=100 #query_cache_size参数表示查询时的缓存大小。缓存中可以存储以前的SELECT语句查询过的信息。遇到相同的查询时,可以直接从缓存中取出结果。 query_cache_size=O #table_cache参数表示所有进程打开表的总数。 table_cache=256 #tmp_table_size参数表示内存中临时表的最大值。 tmp_table_size=9M #thread_cache_size参数表示保留客户端线程的缓存。 th read_cache_size=8 #myisam_max_sort_file_size参数表示"7$01>重建索引时所允许的最大临时文件的大小。此处的默认值为 100G。 myisam_max_sort_fi le_size=10OG #myisam_sort_buffer_size参数表示重建索引时的缓存大小。 myisam_sort_buffer_size=18M #key_buffer_size参数表示关键词缓冲的大小。该缓冲区一般用来缓冲MyISAM表的索引块。 key_buffer_size=11M #read_buffer_size参数表示MyISAM表全表扫描的缓冲大小。 read_buffer_size=64K #read_rnd_buffer_size参数表示将排序好的数据存入该缓存中。 read_rnd_buffer_size=256K #sort_buffer_size参数表示用于排序的缓存的大小。 sort_buffer_size=256K #下面的参数是InnoDB存储引擎使用的参数。 #*** INNODB Specific options *** #innodb_additional_mem_pool_size参数表示附加的内存池。用来存储InnoDB表的内容。 innodb_additional_mem_pool_size=2M #innodb_flush_log_at_trx_commit参数设置提交日志的时机。 #设置为1,InnoDB会在每次提交后将事务日志写到磁盘上。 innodb_flush_log_aMrx_commit= 1 #innodb_log_buffer_size参数表示用来存储日志数据的缓冲区的大小。 innodb_log_buffer_size=1M #innodb_buffer_pool_size参数表示缓存的大小。InnoDB使用一个缓冲池来保存索引和原始数据。 innodb_buffer_pool_size= 18M #innodb_log_file_size参数表示日志文件的大小。 innodb_log_file_size=10M' #innodb_thread_concurrency参数表示在InnoDB存储引擎允许的线程最大数。 innodb_thread_concurrency=8
上面是去掉了大量注释之后的my.ini文件。如果读者安装时选择的配置不一样,那么配置文件会稍有不同。上面将每个参数都做出了解释。读者可以根据自己的需要来更改相应参数的值。
通常情况下,普通读者经常修改的参数是default-character-set (默认字符集)、 default-storage-engine (默认存储引擎)和port (端口)等信息。其他的参数都比较复杂, 修改的机会不是很多。
注意:每次修改参数后,必须重新启动MySQL服务才会有效。在【控制面板】丨【管理工具】丨【服务】命令下可以找到MySQL的服务,在这里可以用右键菜单来选择重启服务。重启服务以后,各项配置参数都会开始生效。