2.3. 在Windows上安装MySQL
- 2.3.1. Windows系统要求
- 2.3.2. 选择安装软件包
- 2.3.3. 用自动安装器安装MySQL
- 2.3.4. 使用MySQL安装向导
- 2.3.5. 使用配置向导
- 2.3.6. 通过非安装Zip文件安装MySQL
- 2.3.7. 提取安装档案文件
- 2.3.8. 创建选项文件
- 2.3.9. 选择MySQL服务器类型
- 2.3.10. 首次启动服务器
- 2.3.11. 从Windows命令行启动MySQL
- 2.3.12. 以Windows服务方式启动MySQL
- 2.3.13. 测试MySQL安装
- 2.3.14. 在Windows环境下对MySQL安装的故障诊断与排除
- 2.3.15. 在Windows下升级MySQL
- 2.3.16. Windows版MySQL同Unix版MySQL对比
MySQL AB已经提供了Windows中安装的MySQL 3.21以上版本,并提供了每天下载MySQL的比率。本节描述在Windows中安装MySQL的过程。
使用Windows版本MySQL安装器,结合GUI配置向导,可以自动安装MySQL,创建选项文件,启动服务器并使默认用户账户安全。
如果你要升级已有的4.1.5版以前的MySQL,你必须执行以下步骤:
1. 获得并安装分发版。
2. 根据需要设置选项文件。
3. 选择想要使用的服务器。
4. 启动服务器。
5. 为初始MySQL账户指定密码。
该过程还适合安装软件包内不包括安装器的MySQL安装。
Windows版MySQL 5.1有3种分发格式:
· 二进制分发版包含一个设置程序,可以安装你需要的任何内容,因此可以立即启动服务器。
· 源码分发版包含所有使用Visual Studio 2003编译器来构建可执行程序的代码和支持文件。
一般来讲,你应当使用二进制分发版。它比其它的分发版使用起来要简单,不再需要其它工具来启动并运行MySQL。
本节描述了如何使用二进制分发版在Windows中安装MySQL。要想使用源码分发版安装,参见2.8.6节,“在Windows下从源码安装MySQL”。
2.3.1. Windows系统要求
要想在Windows中运行MySQL,你需要:
·32位Windows操作系统,例如9x、Me、NT、2000、XP或Windows Server 2003。
基于Windows NT的操作系统(NT,2000,XP,2003),将MySQL服务器做为服务来运行。强烈建议使用基于Windows NT的操作系统。请参见2.3.12节,“以Windows服务方式启动MySQL”。
·TCP/IP协议支持。
·Windows版本MySQL二进制分发版,可以从http://dev.mysql.com/下载/下载。请参见2.1.3节,“怎样获得MySQL”。
注释:如果你从FTP下载分发版,我们建议使用充分的FTP客户端以保证续传,避免下载过程中文件被破坏。
·可以读取 .zip文件的工具,以解压分发文件。
·硬盘上有足够的空间保证根据你的需求来解包、安装和创建数据库(一般建议至少有200兆字节)。
你还可以有以下可选需求:
·如果你计划通过ODBC连接MySQL服务器,你还需要一个连接器/ODBC驱动程序。请参见26.1节,“MySQL Connector/ODBC”。
·如果表需要占用的空间大于4GB,则在NTFS或更新的文件系统上安装MySQL。当创建表时不要忘记使用MAX_ROWS和 AVG_ROW_LENGTH。请参见13.1.5节,“CREATE TABLE语法”。
2.3.2. 选择安装软件包
在Windows中安装MySQL时,有3种MySQL 5.1安装软件包可供选择:
·基本安装:该安装软件包的文件名类似于mysql-essential-5.1.2-alpha-win32.msi,包含在Windows中安装MySQL所需要的最少的文件,包括配置向导。该安装软件包不包括可选组件,例如嵌入式服务器和基准套件。
·完全安装:该安装软件包的文件名类似于mysql-5.1.2-alpha-win32.zip,包含在Windows中安装MySQL所需要的全部文件,包括配置向导。该安装软件包包括可选组件,例如嵌入式服务器和基准套件。
·非自动安装文件:该安装软件包的文件名类似于mysql-noinstall-5.1.2-alpha-win32.zip,包含完整安装包中的全部文件,只是不包括配置向导。该安装软件包不包括自动安装器,必须手动安装和配置。
对于大多数用户,建议选择基本安装。
你的选择会影响你后面必须遵从的安装过程。如果你选择基本安装或完全安装,参见2.3.3节,“用自动安装器安装MySQL”。如果你选择非自动安装MySQL,参见2.3.6节,“通过非安装Zip文件安装MySQL”。
2.3.3. 用自动安装器安装MySQL
在Windows中安装MySQL时,新用户可以使用MySQL安装帮助和MySQL Configuration Wizard(配置向导)。MySQL安装和配置的方式是使新用户可以立即开始使用MySQL。基本安装和完全安装中均包括MySQL安装帮助和配置向导,建议在大多数标准MySQL安装中选择。例外情况包括想在单个服务器上安装多个实例的用户和想完全控制服务器配置的高级用户。
2.3.4. 使用MySQL安装向导
- 2.3.4.1. 前言
- 2.3.4.2. 下载并启动MySQL安装向导
- 2.3.4.3. 选择安装类型
- 2.3.4.4. 定制安装对话框
- 2.3.4.5. 配置对话框
- 2.3.4.6. MySQL安装向导所作的更改
- 2.3.4.7. 升级MySQL
2.3.4.1. 前言
MySQL安装帮助是MySQL服务器的安装器,使用最新的Microsoft Window安装器技术。结合使用MySQL安装帮助和配置向导,用户安装并 配置完MySQL服务器后便可以直接使用。
MySQL安装帮助是MySQL 5.1服务器分发的标准安装器。使用MySQL安装帮助安装MySQL之前,用户需要手动关闭并卸载已经安装的以前版本的MySQL。关于对以前版本进行升级的详细信息请参见 2.3.4.7节,“升级MySQL”。
最近版本的Windows包含了改进版本的Microsoft Windows安装器(MSI)。MSI已经成为Windows 2000、Windows XP和Windows Server 2003应用程序安装的事实标准。MySQL安装帮助中使用了该技术,使安装过程更加灵活、顺利。
Microsoft Windows安装器引擎随着Windows XP的更新而更新;使用以前Windows版本的用户可以参考Microsoft知识库文章查阅关于升级到最新版Windows安装器引擎的资料。
此外,Microsoft最近已经引入了WiX(Windows安装器 XML)工具包。这是Microsoft公认的开放源码项目。我们转换到WiX是因为它是一个开放源码项目,可以使用脚本更加灵活地处理整个Windows安装过程。
对MySQL装帮助的改进依赖于各用户的支持和反馈。如果你发现MySQL安装帮助缺少对你很重要的某些功能,或如果你发现某个缺陷,请使用我们的MySQL缺陷系统来索取功能或报告问题。
2.3.4.2. 下载并启动MySQL安装向导
可以从http://dev.mysql.com/downloads/下载MySQL服务器安装软件包。如果你下载的安装软件包在Zip文件中,你需要先提取文件。
启动帮助的过程取决于下载的安装软件包的内容。如果有setup.exe文件,双击启动安装过程。如果有.msi文件,双击启动安装过程。
2.3.4.3. 选择安装类型
有3种安装类型:Typical(典型安装)、Complete(完全安装)和Custom(定制安装)。
Typical(典型安装)安装只安装MySQL服务器、mysql命令行客户端和命令行实用程序。命令行客户端和实用程序包括mysqldump、myisamchk和其它几个工具来帮助你管理MySQL服务器。
Complete(完全安装)安装将安装软件包内包含的所有组件。完全安装软件包包括的组件包括嵌入式服务器库、基准套件、支持脚本和文档。
Custom(定制安装)安装允许你完全控制你想要安装的软件包和安装路径。关于定制安装的详细信息请参见2.3.4.4节,“定制安装对话框”。
如果你选择Typical(典型安装)或Complete(完全安装)安装并点击Next按钮,你将进入确认窗口确认选择并开始安装。如果你选择定制安装并点击Next按钮,你将进入定制安装对话框,参见2.3.4.4节,“定制安装对话框”。
2.3.4.4. 定制安装对话框
如果你想要更改MySQL安装帮助安装的安装路径或具体组件,应当选择Custom(定制安装)安装。所有可用组件列入定制安装对话框左侧的树状视图内。未安装的组件用红色 X 图标表示;已经安装的组件有灰色图标。要想更改组件,点击该组件的图标并从下拉列表中选择新的选项。
可以点击安装路径右侧的Change...按钮来更改默认安装路径。
选择了安装组件和安装路径后,点击Next按钮进入确认对话框。
2.3.4.5. 配置对话框
选择了安装类型和可选安装组件后,则进入确认对话框。该对话框中将显示安装类型和安装路径供检查。
如果你满意设定值要想安装MySQL,点击Install(安装)按钮。要想更改设定值,点击Back按钮。要想退出MySQL安装帮助不再安装 MySQL,点击Cancel按钮。
完成安装后,将出现注册选项和MySQL网址。注册后便可以访问forums.mysql.com处的MySQL论坛,可以在bugs.mysql.com报告缺陷,并可以注册为时事新闻订户。在安装器的最后一个窗口内,提供了安装摘要,并提供选项以启动MySQL Configuration Wizard(配置向导),可以用来创建配置文件,安装MySQL服务并进行安全配置。
2.3.4.6. MySQL安装向导所作的更改
点击Install(安装)按钮后,MySQL安装帮助开始安装过程,并对系统进行下面章节描述的更改。更改注册表
在典型安装中,MySQL安装帮助在HKEY_LOCAL_MACHINE\SOFTWARE\MySQL AB创建Windows注册键值。
MySQL安装帮助根据正安装的服务器的主要版本创建一个键值,例如 MySQL服务器5.1。它包含两个字符串值,Location和Version。Location字符串包含安装目录。在默认安装中,它包含C:\Program Files\MySQL\MySQL Server 5.1\。Version字符串包含发布号。例如,安装MySQL Server 5.1.2-alpha,键值包含一个5.1.2-alpha值。
这些注册键值用来帮助外部工具识别MySQL服务器的安装位置,不需要扫描整个硬盘来确定MySQL服务器的安装路径。运行服务器时不需要注册键值,使用noinstall Zip文件时不创建注册键值。
更改启动菜单
MySQL安装帮助在Windows 启动菜单中创建一条新的条目,使用MySQL菜单,根据安装的MySQL的主版本来命名。例如,如果安装了MySQL 5.1, MySQL安装帮助在启动菜单中创建MySQL Server 5.1部分。
将在新启动菜单部分创建下面的条目:
·MySQL命令行客户端:这是mysql命令行客户端的快捷方式,对其进行配置以连接为root用户。当连接时快捷方式提示输入root用户密码。
·MySQL服务器实例配置向导:这是MySQL Configuration Wizard(配置向导)的快捷方式。使用该快捷方式来配置新安装的服务器,或重新配置已有的服务器。
·MySQL文档:可以连接到保存在MySQL服务器安装目录下的文档。采用基本安装方式安装MySQL服务器时,该选项不可用。
更改文件系统
默认情况下,MySQL安装帮助将MySQL 5.1服务器安装到C:\Program Files\MySQL\MySQL Server 5.1,其中Program Files是系统应用程序的默认位置,5.1是MySQL服务器的主要版本。这是建议的MySQL服务器的新安装位置,替换了前面的默认位置c:\mysql。
默认情况下,所有MySQL应用程序保存到目录C:\Program Files\MySQL下,其中Program Files是应用程序在Windows中的默认安装位置。开发机器上的典型MySQL安装应为:
C:\Program Files\MySQL\MySQL Server 5.1
C:\Program Files\MySQL\MySQL Administrator 1.0
C:\Program Files\MySQL\MySQL Query Browser 1.0
该方法使管理和维护具体系统上安装的MySQL应用程序更加容易。
2.3.4.7. 升级MySQL
使用MSI的升级功能,MySQL安装帮助可以自动执行服务器升级。这意味着安装新版本前,不需要手动卸载前面安装的程序。安装新版本前,安装器自动关闭并卸载前面安装的MySQL服务。
只有在主版本号和次要版本号相同的安装之间进行升级时,才能自动进行升级。例如,可以自动从MySQL 4.1.5升级到MySQL 4.1.6,但是不能从MySQL 5.0升级到MySQL 5.1。
参见2.3.15节,“在Windows下升级MySQL”。
2.3.5. 使用配置向导
- 2.3.5.1. 前言
- 2.3.5.2. 启动MySQL配置向导
- 2.3.5.3. 选择维护选项
- 2.3.5.4. 选择配置类型
- 2.3.5.5. 服务器类型对话框
- 2.3.5.6. 数据库使用情况对话框
- 2.3.5.7. InnoDB表空间对话框
- 2.3.5.8. 并发连接对话框
- 2.3.5.9. 联网选项对话框
- 2.3.5.10. 字符集对话框
- 2.3.5.11. 服务选项对话框
- 2.3.5.12. 安全选项对话框
- 2.3.5.13. 配置对话框
- 2.3.5.14. my.ini文件的位置
- 2.3.5.15. 编辑my.ini文件
2.3.5.1. 前言
MySQL Configuration Wizard(配置向导)可以帮助自动配置Windows中的服务器。MySQL Configuration Wizard(配置向导)问你一系列问题,然后将回答放到模板中生成一个my.ini文件,该文件与你的安装一致。MySQL Configuration Wizard(配置向导)包含在MySQL 5.1服务器中,目前只适用于Windows用户。
MySQL Configuration Wizard(配置向导)在很大程度上是MySQL AB经过多年从许多用户收到的反馈的结果。然而,如果你发现它缺少某些对你很重要的功能,或如果你发现一个缺陷,请使用我们的MySQL 缺陷系统来索取功能或报告问题。
2.3.5.2. 启动MySQL配置向导
一般情况当MySQL安装帮助退出时,从MySQL安装帮助启动MySQL Configuration Wizard(配置向导)。还可以点击Windows启动菜单中MySQL服务器实例配置向导条目中的MySQL部分来启动MySQL Configuration Wizard(配置向导)。并且,还可以进入MySQL安装bin目录直接启动MySQLInstanceConfig.exe文件。
2.3.5.3. 选择维护选项
如果MySQL Configuration Wizard(配置向导)检查到my.ini文件,你可以选择重新配置已有的服务器,或通过删除my.ini文件并停止、卸载MySQL服务来卸载服务器实例。要想重新配置已有的服务器,选择Re-configure Instance选项并点击Next按钮。已有的my.ini文件重新命名为mytimestamp.ini.bak,其中timestamp是my.ini文件创建是的日期和时间。要想卸载已有的服务器实例,选择Remove Instance选项并点击Next按钮。
如果选择了Remove Instance选项,则进入确认窗口。点击Execute按钮:MySQL Configuration Wizard(配置向导)停止并卸载MySQL服务,然后删除my.ini文件。服务器安装和自己的data文件夹不删除。
如果选择了Re-configure Instance选项,则进入配置类型对话框,可以选择你想要配置的安装类型。
2.3.5.4. 选择配置类型
当启动MySQL Configuration Wizard(配置向导)重新安装MySQL,或为已有安装选择Re-configure Instance选项,则进入配置类型对话框。
可以选择两种配置类型:Detailed Configuration(详细配置)和Standard Configuration(标准配置)。Standard Configuration(标准配置)选项适合想要快速启动MySQL而不必考虑服务器配置的新用户。详细配置选项适合想要更加细粒度控制服务器配置的高级用户。
如果你是MySQL的新手,需要配置为单用户开发机的服务器,Standard Configuration(标准配置)应当适合你的需求。选择Standard Configuration(标准配置)选项,则 MySQL Configuration Wizard(配置向导)自动设置所有配置选项,但不包括服务选项和安全选项。
Standard Configuration(标准配置)设置选项可能与安装MySQL的系统不兼容。如果系统上已经安装了MySQL和你想要配置的安装,建议选择详细配置。
要想Standard Configuration(标准配置),请分别参阅2.3.5.11节,“服务选项对话框”和2.3.5.12节,“安全选项对话框”的服务选项和安全选项。
2.3.5.5. 服务器类型对话框
可以选择3种服务器类型,选择哪种服务器将影响到MySQL Configuration Wizard(配置向导)对内存、硬盘和过程或使用的决策。·Developer Machine(开发机器):该选项代表典型个人用桌面工作站。假定机器上运行着多个桌面应用程序。将MySQL服务器配置成使用最少的系统资源。
·Server Machine(服务器):该选项代表服务器,MySQL服务器可以同其它应用程序一起运行,例如FTP、email和web服务器。MySQL服务器配置成使用适当比例的系统资源。
·Dedicated MySQL Server Machine(专用MySQL服务器):该选项代表只运行MySQL服务的服务器。假定运行没有运行其它应用程序。MySQL服务器配置成使用所有可用系统资源。
2.3.5.6. 数据库使用情况对话框
通过Database Usage(数据库使用)对话框,你可以指出创建MySQL表时使用的表处理器。通过该选项,你可以选择是否使用InnoDB储存引擎,以及InnoDB占用多大比例的服务器资源。·Multifunctional Database(多功能数据库):选择该选项,则同时使用InnoDB和MyISAM储存引擎,并在两个引擎之间平均分配资源。建议经常使用两个储存引擎的用户选择该选项。
·Transactional Database Only(只是事务处理数据库):该选项同时使用InnoDB和MyISAM储存引擎,但是将大多数服务器资源指派给InnoDB储存引擎。建议主要使用InnoDB只偶尔使用MyISAM的用户选择该选项。
·Non-Transactional Database Only(只是非事务处理数据库):该选项完全禁用InnoDB储存引擎,将所有服务器资源指派给MyISAM储存引擎。建议不使用InnoDB的用户选择该选项。
2.3.5.7. InnoDB表空间对话框
有些用户可能想要将InnoDB表空间文件放到不同的位置,而不放到MySQL服务器数据目录。如果你的系统有较大的空间或较高性能的储存设备(例如RAID储存系统),则最好将表空间文件单独放到一个位置。要想更改InnoDB表空间文件的默认位置,从驱动器下拉列表选择一个新的驱动器,并从路径下拉列表选择新的路径。要想创建路径,点击 ...按钮。
如果你要更改已有服务器的配置,更改路径前你必须点击Modify按钮。此时启动服务器之前,你必须将已有表空间文件移到新位置。
2.3.5.8. 并发连接对话框
限制所创建的与MySQL服务器之间的并行连接数量很重要,以便防止服务器耗尽资源。在Concurrent Connections(并行连接)对话框中,可以选择服务器的使用方法,并根据情况限制并行连接的数量。还可以手动设置并行连接的限制。·Decision Support(决策支持)(DSS)/OLAP:如果服务器不需要大量的并行连接可以选择该选项。假定最大连接数目设置为100,平均并行连接数为20。
·Online Transaction Processing(联机事务处理)(OLTP):如果你的服务器需要大量的并行连接则选择该选项。最大连接数设置为500。
·Manual Setting(人工设置):选择该选项可以手动设置服务器并行连接的最大数目。从前面的下拉框中选择并行连接的数目,如果你期望的数目不在列表中,则在下拉框中输入最大连接数。
2.3.5.9. 联网选项对话框
在Networking Options(网络选项)对话框中可以启用或禁用TCP/IP网络,并配置用来连接MySQL服务器的端口号。默认情况启用TCP/IP网络。要想禁用TCP/IP网络,取消选择Enable TCP/IP Networking选项旁边的检查框。
默认使用3306端口。要想更访问MySQL使用的端口,从下拉框选择一个新端口号或直接向下拉框输入新的端口号。如果你选择的端口号已经被占用,将提示确认选择的端口号。
2.3.5.10. 字符集对话框
MySQL服务器支持多种字符集,可以设置适用于所有表、列和数据库的默认服务器字符集。使用Character Set(字符集对话框)来更改 MySQL服务器的默认字符集。·Standard Character Set(标准字符集):如果想要使用Latin1做为默认服务器字符集,则选择该选项。Latin1用于英语和许多西欧语言。
·Best Support For Multilingualism(支持多种语言):如果想要使用UTF8做为默认服务器字符集,则选择该选项。UTF8可以 将不同语言的字符储存为单一的字符集。
·Manual Selected Default Character Set/Collation(人工选择的默认字符集/校对规则):如果想要手动选择服务器的默认字符集,请选择该项。从下拉列表中选择期望的字符集。
2.3.5.11. 服务选项对话框
在基于Windows NT的平台上,可以将MySQL服务器安装成服务。安装成服务,系统启动时可以自动启动MySQL服务器,甚至出现服务故障时可以随Windows自动启动。
默认情况,MySQL Configuration Wizard(配置向导)将MySQL服务器安装为服务,服务名为MySQL。如果你不想安装服务,取消Install As Windows Service选项旁边的选择框。可以从下拉框选择新的服务名或在下拉框输入新的服务名来更改服务名。
要想将MySQL服务器安装为服务,但是不自动启动,不选中Launch the MySQL Server Automatically选项旁边的检查框。
2.3.5.12. 安全选项对话框
强烈建议为你的MySQL服务器设置一个root密码,默认情况MySQL Configuration Wizard(配置向导)要求你设置一个root密码。如果你不想设置root密码,不选中Modify Security Settings(修改安全设定值)选项旁边的选择框。
要想设置root密码,在New root password(输入新密码)和Confirm(确认)两个框内输入期望的密码。如果重新配置已有的服务器,你还需要Current root password(当前root密码)框内输入已有的root密码。
要想防止通过网络以root登录,选中Root may only connect from localhost(只允许从本机登陆连接root)选项旁边的框。这样可以提高root账户的安全。
要想创建一个匿名用户账户,选中Create An Anonymous Account(创建匿名账户)选项旁边的框。创建匿名账户会降低服务器的安全,并造成登录和许可困难。因此不建议。
2.3.5.13. 配置对话框
MySQL Configuration Wizard(配置向导)的最后一个对话框是Confirmation(确认)对话框。要想启动配置过程,点击Execute。要想返回要想到前面的对话框,点击Back按钮。要想不配置服务器即退出MySQL Configuration Wizard(配置向导),点击Cancel按钮。点击Execute按钮后,MySQL Configuration Wizard(配置向导)执行一系列的任务,执行过程将显示在屏幕上。
MySQL Configuration Wizard(配置向导)首先使用MySQL AB开发人员和工程师准备的模板根据你的选择确定配置文件选项。该模板的名称为my-template.ini,位于服务器安装目录中。
MySQL Configuration Wizard(配置向导)将这些选项写入到一个my.ini文件中。my.ini文件的最终位置显示在写配置文件任务的旁边。
如果选择为MySQL服务器创建一个服务,MySQL Configuration Wizard(配置向导)则创建并启动服务。如果你重新配置已有的服务,MySQL Configuration Wizard(配置向导)则根据你的配置更改重新启动服务。
如果选择设置root密码,MySQL Configuration Wizard(配置向导)则连接服务器,设置新root密码并应用你选择的其它安全设定值。
MySQL Configuration Wizard(配置向导)完成任务后,则显示一个概要。点击Finish按钮退出MySQL Configuration Wizard(配置向导)。
2.3.5.14. my.ini文件的位置
MySQL Configuration Wizard(配置向导)将my.ini文件放到MySQL服务器的安装目录中。这样可以帮助将配置文件与具体服务器实例关联起来。要想确保MySQL服务器知道从哪里查找my.ini文件,即做为服务安装的一部分传递给MySQL服务器的部分:--defaults-file="C:\Program Files\MySQL\MySQL Server 5.1\my.ini",其中C:\Program Files\MySQL\MySQL Server 5.1被MySQL服务器的安装路径替代。
--defaults-file指导MySQL服务器读取具体的配置文件。
2.3.5.15. 编辑my.ini文件
要想修改my.ini文件,用文本编辑器打开并进行必要的修改。你还可以用MySQL Administrator实用工具修改服务器配置。MySQL客户端和实用程序,例如mysql命令行客户端和mysqldump不能将my.ini文件放到服务器安装目录中。要想配置客户端和实用工具,根据Windows版本,在C:\Windows或C:\WINNT目录下创建一个新的my.ini文件。
2.3.6. 通过非安装Zip文件安装MySQL
想使用非自动安装包的用户可以使用本节的指令手动安装MySQL。从Zip文档安装MySQL的过程为:
1. 将文档提取到期望的安装目录中。
2. 创建一个选项文件。
3. 选择MySQL服务器类型。
4. 启动MySQL服务器。
5. 使默认用户账户安全。
下面一节描述了该过程。
2.3.7. 提取安装档案文件
要想手动安装MySQL,其步骤为:
1. 如果你从以前的版本升级,开始升级过程前请参阅2.3.15节,“在Windows下升级MySQL”。
2. 如果你使用基于Windows NT的操作系统,例如Windows NT、Windows 2000、Windows XP或Windows Server 2003,确保登录的用户名具有管理员权限。
3. 选择安装位置。传统安装中MySQL服务器安装到C:\mysql,MySQL Installation Wizard(安装帮助)将MySQL安装到C:\Program Files\MySQL。如果你不想将MySQL安装到C:\mysql,你必须在启动过程或在选项文件中指定安装目录的路径。请参见2.3.8节,“创建选项文件”。
4. 使用zip文件工具,将安装文件提取到选定的安装位置。使用某些工具,可以将文档提取到选择的安装位置的文件夹中。在这种情况下,你可以将子文件夹中的内容移动到选择的安装位置。
2.3.8. 创建选项文件
如果想要指定运行服务器的启动选项,可以在命令行中指出或放到一个选项文件中。对于服务器每次启动都用到的选项,你会发现使用选项文件来指定MySQL配置非常方便。特别是在以下环境中:·安装或数据目录位置不是默认位置(C:\Program Files\MySQL\MySQL Server 5.1和C:\Program Files\MySQL\MySQL Server 5.1\data)。
·需要调节服务器设定值。
档MySQL服务器在Windows中启动时,它从两个文件中寻找选项:Windows目录中的my.ini文件和C:\my.cnf文件。Windows目录典型名称为C:\WINDOWS或C:\WINNT。可以使用下面的命令从WINDIR环境变量值确定自己的确切位置:
C:\> echo %WINDIR%
MySQL首先从my.ini文件中寻找选项,然后从my.cnf文件中寻找。为了避免混淆,最好只使用一个文件。如果你的PC使用了一个引导加载器,其中C:不是引导盘,唯一的选则是使用my.ini文件。不管你使用哪个选项文件,必须为纯文本文件。
还可以使用MySQL分发中的示例选项文件。在安装目录中查找以下文件:my-small.cnf、my-medium.cnf、my-large.cnf和my-huge.cnf,你可以重新命名并复制到相应位置用作基本配置文件。
可以用任何文本编辑器来创建并修改选项文件,例如记事本。例如,如果MySQL安装在E:\mysql,数据目录安装在E:\mydata\data,你可以 创建含有[mysqld]部分的选项文件,指定basedir和datadir参数的值:
[mysqld]
# set basedir to your installation path
basedir=E:/mysql
# set datadir to the location of your data directory
datadir=E:/mydata/data
请注意在选项文件中使用正斜线儿不是反斜线指定Windows路径名。如果使用反斜线,必须用双反斜线:
[mysqld]
# set basedir to your installation path
basedir=E:\\mysql
# set datadir to the location of your data directory
datadir=E:\\mydata\\data
在Windows下,MySQL安装器将数据目录直接放到安装MySQL的目录下。如果你想要使用其它位置的数据目录,应当将data目录中的全部内容复制到新的目录下。例如,如果MySQL安装到C:\Program Files\MySQL\MySQL Server 5.1中,数据目录默认在C:\Program Files\MySQL\MySQL Server 5.1\data。如果想要使用E:\mydata做为数据目录,你必须做两件事情:
1. 将整个data目录和全部内容从C:\Program Files\MySQL\MySQL Server 5.1\data移动到E:\mydata。
2. 每次启动服务器时,使用--datadir选项来指定新的数据目录。
2.3.9. 选择MySQL服务器类型
下面的表显示了Windows下可用的MySQL 5.1服务器:
二进制 | 描述 |
mysqld- debug | 已经编译过,可以进行完全调试和自动内存分配检查,用于表InnoDB和BDB。 |
mysqld | 优化的二进制,支持InnoDB。 |
mysqld-nt | 优化的二进制,支持Windows NT,2000 XP,有命名管道。 |
mysqld-max | 优化的二进制,支持InnoDB和BDB表。 |
mysqld-max-nt | 同mysqld-max,但是已经编译过,支持命名管道。 |
已经对所有前面的二进制进行了优化以适用现代Intel处理器,但是应当工作在Intel i386-类或更高的处理器上。
所有Windows MySQL 5.1服务器支持数据库目录符号链接。
MySQL支持所有Windows平台的TCP/IP。mysqld-nt和mysql-max-nt服务器支持Windows NT、2000、XP和2003的命名管道。然而,在所有平台下默认使用TCP/IP。(在许多Windows配置中,命名管道比TCP/IP慢)。
命名管道在以下条件下使用:
·如果使用--enable-named-pipe选项启动服务器,则启用了命名管道。需要明确使用该选项,因为当使用命名管道关闭MySQL服务器时,某些用户会遇到问题。
·只有mysqld-nt或mysqld-max-nt服务器,并且服务器运行在支持命名管道的Windows版本(NT、2000、XP、2003),才能够使用命名管道连接。
·这些服务器可以运行在Windows 98 或Me中,但是必须安装TCP/IP协议;此时不可以使用命名管道连接。
·这些服务器不能在Windows 95中运行。
注释:参考手册中的大多数例子使用mysqld做为服务器名。如果你选择使用不同的服务器,例如mysqld-nt,则在相应例子中的命令中进行相应的替换。
2.3.10. 首次启动服务器
本节中的信息主要适用选择NoinstallMySQL安装版本,或想要手动配置和测试MySQL而不用GUI工具的情况。
在Windows 95,98,或Me中,MySQL客户端总使用TCP/IP连接服务器。(这样允许网络中的所有机器连接MySQL服务器)。因此,在启动MySQL之前,你必须确保机器支持TCP/IP。可以从Windows CD-ROM中找到TCP/IP。
请注意如果使用旧版本的Windows 95(例如,OSR2),很可能你使用了旧的Winsock包;MySQL需要Winsock 2。可以从http://www.microsoft.com/获得最新的Winsock。Windows 98包含新的Winsock 2库,因此不需要更新库。
在基于NT的系统中,例如 Windows NT、2000、XP或2003,客户端可以有两个选择。可以使用TCP/IP,如果服务器支持命名管道连接,也可以使用命名管道。要想使MySQL使用Windows NT 4中的TCP/IP,你必须安装服务pack 3(或更新的补丁)。
如果用--shared-memory选项启动,Windows版MySQL还支持共享内存连接。客户端可以通过--protocol=memory选项通过共享内存进行连接。
关于运行哪个服务器二进制的信息,参见2.3.9节,“选择MySQL服务器类型”。
本节对MySQL服务器启动进行了概述。下面章节详细说明了从命令行或Windows服务启动MySQL服务器的具体信息。
这些章节的例子假定MySQL安装到默认位置C:\Program Files\MySQL\MySQL Server 5.1。如果你将MySQL安装到了其它位置,则要更改例子中的路径名。
在控制台窗口(或“DOS window”)中,最好根据命令提示进行测试。这样可以让服务器在window中容易看见的地方显示状态消息。如果配置出现错误,通过这些消息,可以更容易地识别并修复问题。
要想启动服务器,输入命令:
C:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld --console
支持InnoDB的服务器启动时,你应当能看见下面的消息:
InnoDB: The first specified datafile c:\ibdata\ibdata1 did not exist:
InnoDB: a new database to be created!
InnoDB: Setting file c:\ibdata\ibdata1 size to 209715200
InnoDB: Database physically writes the file full: wait...
InnoDB: Log file c:\iblogs\ib_logfile0 did not exist: new to be created
InnoDB: Setting log file c:\iblogs\ib_logfile0 size to 31457280
InnoDB: Log file c:\iblogs\ib_logfile1 did not exist: new to be created
InnoDB: Setting log file c:\iblogs\ib_logfile1 size to 31457280
InnoDB: Log file c:\iblogs\ib_logfile2 did not exist: new to be created
InnoDB: Setting log file c:\iblogs\ib_logfile2 size to 31457280
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: creating foreign key constraint system tables
InnoDB: foreign key constraint system tables created
011024 10:58:25 InnoDB: Started
服务器完成启动序列后,你应当能看见下述内容,表示服务器准备好,可以进行客户端连接:
mysqld: ready for connections
Version: '5.1.2-alpha' socket: '' port: 3306
服务器继续向控制台写入诊断输出。你可以打开新的控制台窗口运行客户端程序。
如果省略--console选项,服务器向数据目录(默认为C:\Program Files\MySQL\MySQL Server 5.1\data)中的错误日志写入诊断输出。错误日志文件的扩展名为.err。
注释:MySQL授权表中的账户一开始没有密码。服务器启动后,你应当根据2.9节,“安装后的设置和测试”中的说明设置密码。
2.3.11. 从Windows命令行启动MySQL
可以从命令行手动启动MySQL服务器。可以在任何版本的Windows中实现。
要想从命令行启动mysqld服务器,你应当启动控制台窗口(或“DOS window”)并输入命令:
C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld
根据系统中MySQL安装位置的不同,前面的例子中使用的路径也不同。
在非NT版本的Windows中,在后台启动mysqld。也就是,服务器启动后,你应当可以看见后面的命令提示。如果你用该方法在Windows NT、2000、XP或2003中启动服务器,服务器则在前台运行,在服务器退出前,不会出现命令提示。因此,当服务器运行时,应当打开另一个控制台窗口来运行客户端程序。
下述命令可以停止MySQL服务器:
C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin -u root shutdown
该命令调用MySQL管理工具mysqladmin连接服务器并告知它关闭服务。该命令使用MySQLroot用户连接,这是MySQL权限系统中的默认管理账户。请注意MySQL权限系统中的用户完全独立于Windows下的登录用户。
如果mysqld不能启动,检查错误日志看看服务器是否写入了显示问题原因的任何消息。错误日志位于C:\Program Files\MySQL\MySQL Server 5.1\data目录中。是带后缀.err的文件。还可以尝试将服务器启动为mysqld --console;此时,可以从窗口中获得一些有用的信息,可以帮助解决问题。
最后选项是用--standalone --debug启动mysqld。此时,mysqld写入日志文件C:\mysqld.trace,应当包含mysqld不启动的原因。请参见E.1.2节,“创建跟踪文件”。
使用mysqld --verbose --help显示mysqld的所有选项。
2.3.12. 以Windows服务方式启动MySQL
在NT家族 (Windows NT,2000,XP,2003)中,建议将MySQL安装为Windows服务,当Windows启动、停止时,MySQL也自动启动、停止。还可以从命令行使用NET命令,或使用图形Services工具来控制AMySQL服务器。
在Windows控制面板(Windows 2000,XP和Server 2003的管理工具下面)中可以看见Services工具(WindowsService Control Manager)。建议从命令行安装活卸载服务器时关闭Services工具。这样可以防止许多错误。
安装MySQL Windows服务之前,应当使用下面的命令先停止当前正运行的服务器:
C:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqladmin -u root shutdown
注释:如果MySQLroot用户账户有密码,你需要调用命令 C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqladmin -u root -p shutdown并根据提示输入密码。
该命令调用MySQL管理工具mysqladmin,连接服务器并告知它关闭服务。该命令使用MySQLroot用户连接,这是MySQL权限系统中的默认管理账户。请注意MySQL权限系统中的用户完全独立于Windows下的登录用户。
使用该命令安装服务器
C:\> mysqld --install
如果只使用服务器名安装mysqld时有问题,尝试使用全路径名来安装。例如:
C:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld --install
你还可以将MySQL bin目录的路径加到Windows系统PATH环境变量中:
·右击Windows桌面上的My Computer(我的计算机)图标,选择Properties(属性)。
·然后从出现的System Properties菜单中选择Advanced(高级)标签,然后点击Environment Variables(环境变量)按钮。
·选择System Variables(系统变量)下面的Path(路径),然后点击Edit(编辑)按钮。将弹出Edit System Variable(编辑系统变量)对话框。
·将光标放到标记Variable Value(变量值)处的文本的后面。(使用End键确保光标位于文本的最后)。然后输入MySQLbin目录 的完整路径(例如,C:\Program Files\MySQL\MySQL Server 5.1\bin),请注意应使用分号将该路径与该域内的其它值隔离开。一次关闭该对话框和各个对话框,点击OK直到打开的所有对话框被关闭。你现在可以在DOS提示符下从系统的任何目录输入MySQL可执行程序名来调用MySQL可执行程序,而不必提供路径名。包括服务器、MySQL客户端和所有MySQL命令行实用程序,例如mysqladmin和mysqldump。
·请注意在同一个机器上运行多个MySQL服务器时,不需要在WindowsPATH中加入MySQLbin目录。
警告:编辑系统PATH时必须特别注意;意外删除或修改已有路径值会造成系统故障甚至瘫痪。
服务安装命令不会启动服务器。在本节后面将给出相关指令。
安装服务时,可以使用MySQL 5.1中的下面的参数:
·可以直接在--install选项后面指定服务名。默认服务名是MySQL。
·如果给出了服务名,后面可以跟一个选项。一般情况,应当为defaults-file=file_name,指定选项文件的名称,服务器启动时应当从中读取选项。
可以使用单个选项代替--defaults-file,但是不提倡这样做。--defaults-file更加灵活一些,因为你可以将多个服务器启动选项放入命名的选项文件中。
·可以在服务名后面指定一个--local-service选项。这样服务器运行时使用LocalService Windows账户,只具有有限的系统权限。该账户只适用于Windows XP或更新版本。如果服务名后面同时跟有--defaults-file和--local-service,二者可以按任何顺序排放。
对于Windows MySQL服务器,根据下面规则确定服务器使用的服务名和选项文件:
·如果在服务安装命令中,没有在--install选项后面指定了服务名或使用默认服务名(MySQL),服务器则使用MySQL服务名并从标准选项文件的[mysqld]组读取选项。
·如果在服务安装命令中,在--install选项后面指定的服务名不是默认服务名(MySQL)。则从具有相同服务名的组中读取选项,并从标准选项文件读取选项。
服务器还从标准选项文件的[mysqld]组读取选项。你可以使用[mysqld]组中的选项用于所有MySQL服务,还可以使用具有相同服务名的组,用于该服务名所对应的服务器。
·如果在服务安装命令中,在服务名后面指定了--defaults-file选项,服务器只从命名文件的[mysqld]组中读取选项,忽略标准选项文件。
对于更复杂的例子可以考虑使用命令:
C:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld --install MySQL --defaults-file=C:\my-opts.cnf
该命令中,--install选项后面给出了默认服务名(MySQL)。如果未给出--defaults-file选项,该命令可以让服务器从标准选项文件的[mysqld]组中读数。由于提供了--defaults-file选项,服务器只从命名文件的[mysqld]组读取选项。
还可以在启动MySQL服务之前,在WindowsServices工具中指定启动参数选项。
MySQL服务器安装为服务后,Windows启动时自动启动服务。还可以从Services工具直接启动服务,或使用命令NET START MySQL。NET命令忽略大小写。
做为服务运行时,mysqld不能访问控制台窗口,因此看不见任何消息。如果mysqld未启动,检查错误日志看看服务器是否写入了显示问题原因的任何消息。错误日志位于MySQL数据目录中(例如,C:\Program Files\MySQL\MySQL Server 5.1\data),是带后缀.err的文件。
如果MySQL服务器安装为服务,并且服务正运行,Windows关闭时自动停止服务。还可以通过Services工具、NET STOP MySQL命令或 mysqladmin shutdown命令手动停止服务器。
如果不想在引导过程中自动启动服务,还可以将服务设置为手动启动模式。实现的方法是使用--install-manual选项而非--install选项:
C:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld --install-manual
要想卸载服务器,如果服务正运行则应首先使用命令NET STOP MYSQL停止服务。然后使用--remove选项卸载服务:
C:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld --remove
如果mysqld不是服务,可以从命令行启动它。详细说明参见2.3.11节,“从Windows命令行启动MySQL”。
如果在安装过程中遇到问题,请参阅2.3.14节,“在Windows环境下对MySQL安装的故障诊断与排除”。
2.3.13. 测试MySQL安装
可以通过以下命令测试MySQL服务器是否工作:C:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqlshow
C:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqlshow -u root mysql
C:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqladmin version status proc
C:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysql test
如果mysqld对客户端程序TCP/IP连接的响应较慢,可能是DNS问题。此时,使用--skip-name-resolve选项启动mysqld,在MySQL授权表的Host列只使用localhost和IP号。
可以通过--pipe或--protocol=PIPE选项强制MySQL客户端使用命名管道连接代替TCP/IP连接,或指定.(阶段)做为主机名。使用--socket选项指定管道名。
2.3.14. 在Windows环境下对MySQL安装的故障诊断与排除
首次安装、运行MySQL时,你可能会遇到一些错误,使MySQL服务器不能启动。本节的目的是帮助你诊断并纠正这些错误。
解决服务器问题时你的第一资料是错误日志。MySQL服务器使用错误日志来记录服务器不能启动的信息。错误日志位于my.ini文件指定的数据目录中。默认数据目录位于C:\Program Files\MySQL\MySQL Server 5.1\dat。请参见5.11.1节,“错误日志”。
另一个错误相关信息源是MySQL服务启动时控制台上显示的消息。将mysqld安装为服务后,从命令行通过NET START mysql命令来查看MySQL服务启动相关的错误消息。请参见2.3.12节,“以Windows服务方式启动MySQL”。
下面距离说明了首次安装并启动MySQL服务时会遇到的最常见的错误消息:
·System error 1067 has occurred.
·Fatal error: Can't open privilege tables: Table 'mysql.host' doesn't exist
·当MySQL服务器找不到MySQL权限数据库或关键文件时会出现这些消息。当MySQL基或数据目录没有安装在默认位置(C:\mysql和 C:\Program Files\MySQL\MySQL Server 5.1\data),而是安装到其它位置时通常会遇到该问题。
发生该问题的一种情况是对MySQL进行升级或安装到了新位置,但是没有对配置文件进行更新以对应新的安装位置。此外还可能是新旧配置文件冲突,当升级MySQL时,一定要删除或重新命名旧的配置文件。
如果你没有将MySQL安装到C:\Program Files\MySQL\MySQL Server 5.1目录下,而是安装到了其它目录下,你需要通过使用配置(my.ini)文件让MySQL服务器知道安装目录。my.ini文件应位于Windows目录下,典型为C:\WINNT或C:\WINDOWS。可以在命令提示符下输入下面的命令从WINDIR环境变量值中确定确切位置:
C:\> echo %WINDIR%
可以通过文本编辑器(例如记事本)来创建并修改选项文件。例如,如果MySQL安装在E:\mysql下,数据目录在D:\MySQLdata,你可以创建选项文件并设置[mysqld]来指定basedir和datadir参数的值:
[mysqld]
# set basedir to your installation path
basedir=E:/mysql
# set datadir to the location of your data directory
datadir=D:/MySQLdata
请注意应使用(正)斜线而不是反斜线在选项文件中指定Windows路径名。如果使用反斜线,则必须使用双斜线:
[mysqld]
# set basedir to your installation path
basedir=C:\\Program Files\\MySQL\\MySQL Server 5.1
# set datadir to the location of your data directory
datadir=D:\\MySQLdata
如果在MySQL配置文件中更改datadir值,在重新启动MySQL服务器之前,必须移动已有MySQL数据目录中的内容。
参见2.3.8节,“创建选项文件”。
·Error: Cannot create Windows service for MySql. Error: 0
·当你没有事先停止并卸载已有MySQL服务,并且使用MySQL Configuration Wizard(配置向导)重新安装或升级MySQL时,会遇到该问题。发生的原因是,当配置向导试图安装服务时,它发现已经有一个同名的服务。
解决该问题的一个方案是使用配置向导时选择mysql之外的其它服务名。这样可以正确安装新服务,但保留了原来的服务。但是这样不好,最好是卸掉不再使用的旧服务。
要想永远卸掉旧的MySQL服务,通过管理权限用户在命令行执行下面的命令:
C:\>sc delete mysql
[SC] DeleteService SUCCESS
如果Windows版本中没有sc工具,可以从http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/delsrv-o.asp下载delsrv工具并使用delsrvMySQL语法。
2.3.15. 在Windows下升级MySQL
本节列出了在Windows中升级MySQL应采取的步骤。
1. 进行升级前你应先备份当前的MySQL安装。请参见5.9.1节,“数据库备份”。
2. 从http://dev.mysql.com/downloads/下载最新Windows版MySQL。
3. 升级MySQL前,必须停止服务器。
如果服务器安装为服务,必须在命令提示符下在命令行中用下面的命令停止服务:
C:\> NET STOP MYSQL
如果MySQL服务器不是服务,使用下面的命令停止服务器:
C:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqladmin -u root shutdown
4. 当从以前至的4.1.5版本升级到MySQL 5.1时,或从Zip文件安装的MySQL升级到MySQLInstallation Wizard(安装帮助)安装的MySQL时,你必须手动卸载前面安装的MySQL服务。
要想卸载MySQL服务,使用下面的命令:
C:\> C:\mysql\bin\mysqld --remove
如果你不想卸载已有的服务,MySQL Installation Wizard(安装帮助)则不会正确安装新的MySQL服务。
5. 如果你使用MySQL Installation Wizard(安装帮助),按照2.3.4节,“使用MySQL安装向导”的描述来启动帮助。
6. 如果用Zip文件安装MySQL,应提取文件。你可以覆盖已有的MySQL安装(通常位于C:\mysql),或将它安装到其它目录,例如 C:\mysql4。建议覆盖原有的安装。
7. 重新启动服务器。如果你运行MySQL服务,则使用NET START MySQL,还可以直接调用mysqld。
8. 关于在Windows之外的操作系统升级MySQL的详细信息,请参阅2.10节,“升级MySQL”。
9. 如果遇到错误,参见 2.3.14节,“在Windows环境下对MySQL安装的故障诊断与排除”。
2.3.16. Windows版MySQL同Unix版MySQL对比
已经证明,Windows版MySQL很稳定。Windows版MySQL的功能与相应的Unix版相同,只有以下例外:
·Windows 95和线程
Windows 95创建一个线程时大约需要200字节的主内存。MySQL的每个连接都会创建一个新线程,因此如果你的服务器正处理许多连接,你不应当在Windows 95中运行mysqld。
·有限的端口数目
Windows系统有大约4,000个端口供客户端连接,某个端口的连接关闭后,在能够重新利用该端口前,需要2至4分钟。在客户端频繁连接并从服务器上断开时,在可以重新使用关闭的端口前,有可能用完了所有可用的端口。如果发生这种情况,MySQL服务器不会响应,即使它仍在运行。请注意机器上运行的其它应用程序也可以使用端口,此时可供MySQL使用的端口数要少。
详细信息参见http://support.microsoft.com/default.aspx?scid=kb;en-us;196271。
·并行读
MySQL依靠pread()和pwrite()系统调用来同时使用INSERT和SELECT。目前我们使用互斥来竞争pread()和pwrite()。我们将来想用虚拟接口替换文件级接口,因此要想更快,我们可以在NT、2000和XP上使用readfile()/writefile()接口。目前MySQL 5.1可以打开的文件的限制数目为2,048,意味着在Windows NT,2000,XP和2003上可以运行的并行线程不如Unix上多。
·阻塞读
MySQL为每个连接使用阻塞读取,如果启用了命名管道连接,其含义如下:
o连接不会在8小时后自动断开,而在Unix版MySQL中会发生。
o如果连接被挂起,不杀掉MySQL则不会将其中断。
omysqladmin kill不会杀掉睡眠中的连接。
o只要有睡眠连接,mysqladmin shutdown不会中断。
我们计划在将来修复该问题。
·ALTER TABLE
执行ALTER TABLE语句时,将该表锁定不让其它线程使用。在Windows中,你不能删除正被另一个线程使用的文件。在将来,我们会找出办法解决该问题。
·DROP TABLE
在Windows中对一个被MERGE表应用的表执行DROP TABLE不会实现,因为MERGE处理器将表从MySQL上层映射隐藏起来。由于Windows不允许删除打开的文件,必须在删除表之前首先清空所有MERGE表(使用FLUSH TABLES)或删掉MERGE表。
·DATA DIRECTORY and INDEX DIRECTORY
在Windows中将忽略DATA DIRECTORY和INDEX DIRECTORY选项,因为Windows不支持符号连接。在具有非功能realpath()调用的系统中,这些选项也被忽略。
·DROP DATABASE
你不能删掉正被线程使用的数据库。
·从Task Manager(任务管理器)杀掉MySQL
你不能从Task Manager(任务管理求)或使用Windows 95的shutdown工具来杀掉MySQL。你必须通过mysqladmin shutdown停止它。
·大小写名
由于Windows对文件名大小写不敏感。因此在Windows中MySQL数据库名和表名对大小写也不敏感。唯一的限制是在同一个语句中,必须同时使用大写或小写指定数据库名和表名。请参见9.2.2节,“识别符大小写敏感性”。
·‘\’路径名间隔符
Windows中的路径名用‘\’符间隔开,在MySQL中还是转义字符。如果你使用LOAD DATA INFILE或SELECT ... INTO OUTFILE,用‘/’符使用Unix-类文件名:
mysql> LOAD DATA INFILE 'C:/tmp/skr.txt' INTO TABLE skr;
mysql> SELECT * INTO OUTFILE 'C:/tmp/skr.txt' FROM skr;
你还可以使用双‘\’符:
mysql> LOAD DATA INFILE 'C:\\tmp\\skr.txt' INTO TABLE skr;
mysql> SELECT * INTO OUTFILE 'C:\\tmp\\skr.txt' FROM skr;
·管道问题。
管道不能在Windows命令行提示符下可靠地工作。如果管道包括字符^Z/CHAR(24),Windows认为遇到了文件末尾并中断程序。
这主要是按照如下所示使用二进制日志的主要问题:
C:\>mysqlbinlog binary-log-name | mysql --user=root
如果使用日志时出现问题,怀疑是由于^Z / CHAR(24)字符,你可以使用下面的程序:
C:\> mysqlbinlog binary-log-file --result-file=/tmp/bin.sql
C:\> mysql --user=root --execute "source /tmp/bin.sql"
后面的命令还可以用来可靠读取任何包含二进制数据的SQL文件。
·Access denied for user错误
如果你试图运行MySQL客户端程序来连接同一机器上运行的服务器,但是遇到错误Access denied for user 'some-user'@'unknown' to database 'mysql',这意味着MySQL不能正确识别你的主机名。
要解决该问题,你应当创建一个名为\windows\hosts包含下面信息的文件:
127.0.0.1 localhost
这儿有一些公开问题,提供给想要帮助我们改进Windows中的MySQL的人们:
·增加宏来使用Windows提供的更快的线程安全增/减方法。