Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6895718
  • 博文数量: 1956
  • 博客积分: 10648
  • 博客等级: 上将
  • 技术积分: 23794
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-22 09:38
个人简介

HI,movno1

文章分类

全部博文(1956)

文章存档

2022年(1)

2021年(8)

2020年(2)

2019年(12)

2018年(2)

2016年(2)

2015年(1)

2014年(2)

2013年(19)

2012年(8)

2011年(41)

2010年(388)

2009年(122)

2008年(385)

2007年(259)

2006年(704)

我的朋友

分类: Mysql/postgreSQL

2006-04-17 09:41:59

如何在windows系统下安装MySQL
出处:51CTO.COM教程
【导读】本文介绍如何在Windows下安装MySQL5数据库。

可以运行在本地windows版本的MySQL数据库程序自从3.21版以后已经可以从MySQL AB公司获得,而且 MYSQL每日的下载百分比非常大.这部分描述在windows上安装MySQL的过程. 安装程序是针对windows版本的MySQL 5.0,结合了图形安装向导,自动的安装MySQL,创建 一个配置文件,启动服务器,和保护默认的用户帐户. 如果你是升级安装现有的MySQL 4.1.5版本.你必须完成下列步骤:

1. 获得和安装 
2. 如果有必要安装配置文件 
3. 选择一个想要使用的服务器. 
4. 启动服务器 
5. 为MYSQL帐户设置密码. 
这个过程在没有安装配置的myslq安装程序里完成. 
MySQL 5.0 for Windows 可用的种格式:
· 包含二进制的安装程序可以安装所有你需要的依次你可以立即启动服务器. 
· 原始类包括所有代码和支持文件建造执行使用Visual Studio 2003编译系统.

一般来讲,你应该使用二进制形式.较其他比较简单,和你不需要额外的工具让mysql使用 和运行. 本文主要描述怎样在windows上安装使用二进制格式的MYSQL.

一、要在WINDOWS上运行MYSQL,你要具备下列条件:

· 一个32位WINDOWS操作系统,9x,ME,NT,2000,XP,或者 windows server2003.基于 WINDOWS NT操作系统(NT,2000,XP,2003)允许你运行MYSQL 服务器为一个服务.使用基于 WINDOWS NT操作系统是我们强烈推荐的.

· TCP/IP协议支持. · 二进制版本的MYSQL for windows,可以从 http://dev.mysql.com/downloads/下 载。注意: 如果你通过FTP下载.我们推荐使用适当的FTP软件很重要.避免在现在过程中文件 损坏..

· 一个可以打开.zip 文件的工具,用来打开安装文件

· 硬盘的空间推荐最小200M. 如果准备通过ODBC连接MYSQL,你也需要ODBC连接驱动

· 你过你需要的表大于4GB,安装MYSQL在NTFS或者新的文件系统上.当你创建表的时不 要忘记使用 MAX-ROWS和AVG_ROW_LENGTH.

二、选择一个安装组件

对于MYSQL 5.0,有三个组件用来选择安装MYSQL在WINDOWS上.下列是组件:

· 基本组件:这个组件有一个类似于mysql-essential-5.0.13-rc-win32.msi和包含最 小需求文件组件不包含可选组件与内含的服务器和基准组件

· 全部组件:这个组件有一个文件名类似 mysql-5.0.13-rc-win32.zip和包含所有可需 文件来完成WINDOWS安装.包括配置向导.这个组件包括可选组件与内含的服务器和基准 组件

· 无安装存档:. 这个组件有一个类似于mysql-noinstall-5.0.13-rc-win32.zip的文 件名和包含建立完成安装组件的文件.配置向导除外.这个组件不包含自动安装,必须手 动安装和配置.大多数拥护推荐使用基本组件.

三、使用配置向导

MySQL配置向导可以帮助您实现WINDOWS系统下的服务器自动配置。MySQL配置向导首先会根据一一系列的问题创 建一个定制好的my.ini文件,然后根据填写内容并将其应用到模板中从而产生一个跟安装相适应的my.ini文件 。配置向导包含在MySQL 5.0服务器中,现在只适合WINDOWS用户。配置向导很大程度上来源于用户近几年在My SQL AB上的反馈信息。如果你觉得向导内容缺少你所需要的重要内 容,或者,你发现有错误,请通过MySQL 错误报告系统要求添加新特性或报告错误信息。

安装完毕后可以直接进入配置向导或通过点击WINDOWS开始程序中的MySQL服务器实例向导进入MySQL配置向导。 另外,也可以找到MySQL安装目录下的bin目录下的MySQLInstanceConfig.exe文件并直接运行它。

如果你的MySQL配置向导发现了一个已经存在的my.ini文件,你可以重新配置已经存在的服务器,或者通过删除 my.ini文件、停止并移除MySQL服务的方法移除服务器实例。重新配置已经存在的服务器,选择“重新配置实例”选项并且选择“下一步”按钮。已经存在的my.ini文件被 重新命名为mytimestamp.ini.bak,时间戳是已经存在的my.ini创建时的日期和时间。移除已经存在的数据库实 例,选择“移除实例”选项并选择“下一步”按钮。如果选择了“移除实例”选项,进入到确认界面。单击“运行”按钮:MySQL配置向导停止并开始移除MySQL服 务,并删除my.ini文件。但服务器安装目录并没有移除。如果选择了“重新配置实例”选项,进入到“配置类型”界面,可以选择安装想要配置的安装类型。

选择了MySQL配置向导的 “安装MySQL”,或“重新配置实例”,都将进入到“配置类型”界面有两个配置类型可供选择:详细配置和标准配置。标准配置选项是为那些不需要考虑复杂服务器配置的新手而 设计的。详细配置选项是给那些能更高好的操作服务器的高级用户使用的。如果您刚开始使用MySQL,并且把它做为一个单一用户的开发机器使用的话,标准配置能满足您的需求。选择标 准配置后,除了服务选项和安全选项外配置向导对其他部分都做了自动配置。如果你的机器中有已经安装了MySQL,标准配置可能不太适合你的系统。如果愿意进一步配置的话,“详细配置 ”选项是推荐的。

然后进入服务器类型页面,有三种不同的服务器类型可供选择,选择服务器类型后配置向导将会根据选择的不同确定内存、磁盘、处理器 的使用。

• 开发版:这个选项是典型的桌面工作站,是MySQL为个人使用而设计的。有很多其他的桌面应用程序也 可以在此上运行。MySQL服务器使用了最小的系统资源。

• 服务器版:选择此选项MySQL可以和其他一些服务器应用程序如FTP,email,Web服务同时运行。MySQL 服务器配置使用了中等程度的系统资源。

• MySQL服务器专业版:这个选项是只能运行MySQL服务器,其他应用程序不可以运行。MySQL服务器配置 将使用所有可用资源。

“数据库使用”界面允许在创建MySQL表时可以指示想使用的表操作。选择项将决定InnoDB存储引擎是否可用, InnoDB所能使用系统资源的百分比。多功能的数据库:此选项InnoDB 和 MyISAM存储引擎可用,并且在两者之间平均分配资源。推荐在通常情况下 会使用这两个存储引擎的的用户使用。事务型数据库:此选项InnoDB 和 MyISAM存储引擎均可用,但更倾向于系统大部门资源为InnoDB存储引擎所使 用。推荐经常使用InnoDB而很少使用MyISAM的用户使用。

• 非事务型数据库:此选项完全禁止InnoDB存储引擎,完全专注于MyISAM存储引擎。推荐不使用InnoDB 的用户使用。

InnoDB表空间界面

有些用户更愿意将InnoDB表空间文件放在不同的位置而不是MySQL服务器数据目录。如果系统有更高的存储能力 或更高性能的存储设备可用,比如RAID存储系统,可以把表空间文件放置在不同的位置。可以修改InnoDB表空间文件的默认位置,从下拉列表框的盘符列表中选择一个并选择一个新的路径。创建定制 的路径,单击“...”。 如果修改已经存在的服务器配置,在修改路径之前必须单击“修改”按钮。在启动服务器之前必须先手工把已 经存在的表空间文件移到新的位置。

并发连接界面

控制连接到MySQL服务器的并发连接数目能有效的防止耗进系统资源。并发连接界面允许选择服务器按所需选择 服务器的使用情况, 并同时设置并发连接限制。也可以手工设定并发连接数。

• 决策支持(DSS)/联机分析处理(OLAP):服务器不要求大数目的并发连接时选择此项。最大连接数 目的连接可达100,但平均会有20个并发连接。

• 在线事务处理(OLTP):服务器要求大数量的并发连接时选择此项。最大连接数可达500。

• 手工设置:选择此项可以手工设置并发访问服务器的最大树木。从下拉列表框中选择最大可连接数, 如果下拉列表框中列出的数目没有可选择的。可手工输入最大连接数目。

网络配置选项对话框

可以使用网络配置对话框来激活或者禁止TCP/IP网络服务同时配置和MySQL服务器连接的端口号。TCP/IP网络服 务是默认激活的。Windows可以通过不选择TCP/IP网络选项的选项框禁止TCP/IP网络服务。通常默认使用的端口 是3306。如果需要改变访问MySQL的端口,可以从下拉选项框中选取新的端口号或者在选项框中直接输入新的端 口号。如果你选定的端口号已经被使用,系统将会提示你去确认对端口号的选择。

字体设置对话框

MySQL服务器支持多字体设置,同时可以为服务器设置默认服务字体,该字体可以应用于所有的数据表、列和未 被超级控制的数据库。可以使用字体设置对话框来改变MySQL服务器的默认字体设置。

1 标准的字体设置:该选项用于将Latin1作为默认的服务字体. Latin1可以用于英文和众多西文字体。

2 对于多语言字体的最佳支持:该选项用于UTF8作为默认的服务字体。在单一的字体设置中,UTF8可以存储来自 很多不同语言的字体。

3 手动选择默认字符设置/排序:该选项用于手动设置默认字体。你可以从下拉选择框所提供的字体中选择所需 要的字符。

服务选择对话框

在基于Windows NT的平台上,MySQL服务器可以被作为Windows的一项服务被安装。当作为一项服务安装时, MySQL服务器可以随着系统的启动而自启动,并且在服务失败时,MySQL服务器可以自动重起。在MySQL的默认配置中,将MySQL服务器作为服务安装,同时该服务的名称为MySQL。如果你不希望安装该项服务 ,不选择作为Windows服务的选择框即可。你可以从所提供的下拉选择框中选取一个新的服务名称或者直接在下 拉选择框中输入新的服务名称。如果需要将MySQL服务器作为一项服务来安装,同时使MySQL不随着系统启动而自启动,则不选择自启动Mysql服 务选择框。

安全选择对话框

强烈推荐你为你的MySQL服务器设置一个相应的根用户密码,同时MySQL配置向导需要你设置一个默认的根用户 密码。如果你不希望设置根用户密码,则不要选择修改安全设置选项。为了设置根用户密码,需要将设定的根 用户密码同时输入新根密码和确认选择框里。如果你需要重新配置一个已存在的服务器,你需要将其的根用户 密码输入到当前的根密码选择框里。为了防止通过网络的根用户登录,可以在Root的选择框中设置为只允许从本地连接。这将增强你的根用户的安 全性。为了生成一个匿名用户帐户,选择生成匿名帐户的选择框。生成一个匿名用户帐号可能会降低服务器的安全性 ,同时造成登陆和认证的困难。出于这种原因,该选项一般不被推荐。

确认对话框

MySQL配置向导中的最后的对话框是确认对话框。可以点击“执行”按钮来启动配置操作。为了返回到前一个对 话框,可以点击“返回”按钮。可以点击“取消”按钮退出MySQL配置向导而无需配置服务器。当你点击“执行”按钮后而无需配置服务器,MySQL配置向导执行一系列任务,该任务在被执行时,执行进度将 会被显示在屏幕上。 MySQL配置向导首先使用由MySQL AB开发者和工程师所准备的模版配置文件来决定基于你的选择的配置文件选项 。该模版被命名为my-template.ini,同时位于你的服务期安装目录下。MySQL配置向导将这些选择项写入至 my.ini文件中。my.ini文件的最终位置将会被显示在写配置文件任务中。如果你选择为MySQL服务器生成一项服务,MySQL配置向导将会生成并启动该服务。如果你正在重新配置一个已 存在的服务,MySQL服务向导将会重起服务以重新应用改变的配置。如果你选择设置一个根密码,MySQL配置向导将会和服务器连接,设置你的新的根用户密码同时应用你已经选择 的其他安全设置。在MySQL配置向导完成其的任务后,一个摘要将会被显示出来。点击“结束”按钮退出MySQL配置向导。

配置文件my.ini的位置

MySQL配置向导将my.ini文件放置在MySQL服务器的安装目录中。这将有助于将配置文件和具体的服务器实例相 关联。为了保证MySQL服务器知道到哪里查找my.ini文件,和下面内容类似的参数将会被作为服务安装的一部分 传递给MySQL服务器:--defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini C:\Program Files\MySQL\MySQL Server 5.0可以被指向MySQL服务器的安装路径所代替。

编辑my.ini文件

可以使用文本编辑器打开该文件同时做出必要的编辑和修改。你也可以以MySQL Administrator的应用程序来修 改服务器配置。 MySQL客户端和应用程序,例如mysql命令行客户端和mysqldump并不能确定位于服务器安装目录中的my.ini文件 的位置。为了配置客户端和应用程序,根据你的Windows版本的不同,在C:\Windows下或者在C:\WINNT目录下生 成新的文件my.ini 文件

四、从Noinstall Zip Archive中安装MySQL

正在从Noinstall软件包安装MySQL的用户可以使用这个说明来手动安装MySQL。从Zip archive 中安装MySQL的 步骤如下:

  1 在指定的安装目录下解压软件包。
  2 制造选择文件。
  3 选择MySQL服务类型。
  4 开始MySQL服务。
  5 保护默认账户。
解压安装软件包

为了手工安装MySQL,需要按以下步骤进行:

1 如果你需要对以前的版本更新,请参考在更新步骤刚开始时的文章 “Upgrading MySQL on Windows”。

2 如果你正在使用基于Windows NT的操作系统例如Windows NT, Windows 2000, Windows XP或者Windows Server 2003,必须保证你作为拥有管理员特权的用户登录该系统。

3 选择一个安装位置。传统的MySQL服务器安装在 C:\mysql,而MySQL安装向导将 MySQL 安装到 C:\Program Files\MySQL。如果不将 MySQL 安装到 C:\mysql下,你必须在启动或者在选择文件中具体指出安装路径。

4 选用压缩工具将安装压缩软件解压缩至选择安装的位置上。有些压缩工具有可能将其解压到你的被选择的安 装位置的子目录中。如果是这种情况,你可以将该子目录的内容从子目录移至安装路径下。

生成选择文件

如果你需要在运行服务器时,具体化启动选项,你可以在命令行标志出他们或者在一个选择文件中设置他们。 对于每次服务器启动时所使用的服务,你将会发现使用选择文件来具体化你的MySQL配置是非常便利的。尤其是 在以下情况中:当MySQL服务在Windows上启动时,其在两个文件中寻找选项:在Windows目录下的 my.ini 文件以及C:\my.cnf 文件。Windows目录典型的命名如下:C:\WINDOWS or 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的文件,这些文件可以被重新命名同时 拷贝到合适的位置作为一个基本的配置文件来使用。一个选择文件可以被任何文本编辑器生成和修改,诸如 Notepad等。例如,如果MySQL被安装在E:\mysql 目录下,而数据目录是在E:\mydata\data下,你可以生成一个 包含 [mysqld] 部分的选择文件来具体化基本目录和数据目录的参数值:
[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的目录下。如果你需要在另外不同的位置使用 数据目录,你需要将整个数据目录的内容拷贝至新的位置。例如,如果MySQL安装在C:\Program Files\MySQL\MySQL Server 5.0 目录下,则数据目录的位置默认是在 C:\Program Files\MySQL\MySQL Server 5.0\data下。如果你需要将E:\mydata 作为你的数据目录,你需要做以下两件事情:

1 将整个数据目录和它的所有内容从C:\Program Files\MySQL\MySQL Server 5.0\data 移至E:\mydata.。

2 每次启动服务时,使用a--datadir选项来确认新的数据目录位置。

选择MySQL服务类型

以下显示了MySQL5.0Windows版本提供的服务类型:
mysqld-debug带有完全调试和自动内存分配检查的编译,该编译对象也包括 InnoDB和BDB数据表。
mysqld  优化InnoDB支持的二进制数据。
mysqld-nt优化命名管道支持的二进制数据。
mysqld-max优化InnoDB 和 BDB数据表所支持的二进制数据
mysqld-max-nt同mysqld-max功能一样,但是编译时支持命名管道
上述优化选项都是针对Intel 处理器的,但是应该可以工作在任何Intel i386-class 或者更高的处理器。在MySQL 5.0中,所有的Windows版本服务器都提供了对数据库目录的符号链接。 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版本的平台下才能使用。 在Windows 98 or Me系统下,只有当其安装了TCP/IP后,这些服务才能够运行。命名管道的连接不能 使用。 上述服务在Windows 95下不能够运行。注意:在参考手册中的大部分例子都使用mysqld作为服务名。如果你使用另外一个服务器,例如mysqld-nt,则 需对上述例子作合理的替代。
 
首次开启服务

这部分的信息主要应用在使用Noinstall版本安装MySQL时,或者希望手动而不是使用GUI工具配置和检测MySQL 的情况下。在Windows 95, 98, or Me下,MySQL客户端经常和使用TCP/IP的服务器相连接。(这允许在你网络上的任意机器 可以和MySQL服务器连接)。基于这一点,你必须保证在启动MySQL前,TCP/IP 支持安装在你的机器上。你可以 到在你Windows CD-ROM中找到TCP/IP服务。 在这里需要注意的是如果你正在使用老的Windows 95发布版本(例如OSR2),那很有可能你在使用一个旧的 Winsock软件包;MySQL需要的是Winsock 2。你可以从下载最新的Winsock软件包 。Windows 98具有新的Winsock 2库,所以无需更新库。在基于NT的系统例如 Windows NT, 2000, XP, or 2003上,客户可以有两个选择。他们可以使用TCP/IP或者当 服务器支持命名管道的连接时使用命名管道。为了得到在TCP/IP下工作的Mysql版本,你必须安装service pack 3(或者更新的版本) 如果在启动时,选择 --shared-memory, Windows版本的MySQL 5.0同样也支持共享内存的连接。客户端可以选 择 --protocol=memory 选项来进行共享内存的连接。

以上对启动MySQL服务进行了总体概述,下面的内容提供了从命令行或者作为Windwos服务来启动MySQL服务器更 加具体的信息:

假设MySQL安装在默认位置C:\Program Files\MySQL\MySQL Server 5.0下。如果你把MySQL安装在不同的位置上 ,则需调整相应的路径名。测试工作可以从控制台窗体(或者通过“DOS window”)通过一个即时命令来完成。 这样你就可以会在窗体中比较容易的看到服务器状态信息。如果你的配置有误时,这些信息将有助于你识别和 修复任何故障。为了开启服务,输入以下命令:
C:\> C:\Program Files\MySQL\MySQL Server 5.0\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.0.13-rc'  socket: ''  port: 3306
服务器将会继续将其所产成的判断信息输入到控制台上。而你则可以打开一个新的控制台来运行客户端程序。如果你省略了 --console 选项,服务器将会把诊断信息输出到 数据目录下的错误日志中(默认是C:\Program Files\MySQL\MySQL Server 5.0\data )。错误日志以.err为扩展名。注意:在MySQL授权数据表的帐号初始化是没有密码的。

在Windows命令行下开启MySQL服务

MySQL服务器可以手动从命令行启动。该项操作可以在Windows的任何版本下完成。为了从命令行启动mysqld服 务,你应该启动一个控制台窗体(或者"DOS 窗体")同时输入以下命令:

C:\> C:\Program Files\MySQL\MySQL Server 4.1\bin\mysqld

在上述例子中使用的路径可以根据你的系统安装MySQL的路径不同而改变。在非NT版本的Windows版本上, mysqld是在后台启动的。这也就意味着在服务启动之后,你查看另外的即时命令。基于这一点,你应该在服务 运行时打开另外一个控制窗体来运行客户端程序。

你可以通过执行以下命令停止MySQL服务:

C:\> C:\Program Files\MySQL\MySQL Server 4.1\bin\mysqladmin -u root shutdown

该命令激活MySQL管理程序和服务器连接同时告诉他关闭服务。该名令是作为MySQL根用户连接的,在Mysql权限 系统中,根用户默认是管理员帐户。注意在MySQL授权系统中的用户和任意在Windows下登陆的用户是完全独立 的。如果mysqld没有启动,检查错误日志文件查看是否服务器向其中写入了信息,该信息说明问题产生的原因。错 误日志位于C:\Program Files\MySQL\MySQL Server 5.0\data 目录下。该日志是以扩展名为.err的文件。你也 可以试着重新开启mysqld 控制台服务,这样你就有可能获取一些有助于解决问题的信息。最后一个选项是开启mysqld时选择--standalone --debug。在这种情况下,mysqld 将会写一个 C:\mysqld.trace的日志文件,该日志文件将会包含mysqld为何没有启动的原因。

使用mysqld --verbose --help 可以看到mysqld所提供的所有选项的帮助信息。

作为一项Windows服务开启MySQL

在NT系列的Windows版本(Windows NT, 2000, XP, 2003)中,推荐运行MySQL服务的方法是将其作为Windows服务 进行安装,在这种情况下MySQL随着Windows开始和结束自动开始和结束。一个作为服务被安装的MySQL服务器能 够被从命令行上使用NET命令或者使用图形界面服务程序所控制。服务程序(Windows 服务控制管理器)可以被在 Windows控制面板中找到(在Windows 2000, XP, and Server 2003的管理工具下)。建议在执行服务器安装程序 时或者在命令行中执行删除操作时关闭服务应用程序。这将会防止很多错误。在将MySQL作为Windows服务安装之前,如果当前服务器正在运行,应该首先使用下述命令停止其的运行:

C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin -u root shutdown

注意:如果MySQL根用户有密码,那么你需要这样激活命令:

C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin -u root -p shutdown ,同时必须根据提示输入 用户密码。

这调用了MySQL的管理功能mysqladmin,mysqladmin可以连接到服务器,让服务器关闭。这个命令是作为MySQL 的 root用户而和服务器建立连接的,MySQL的 root用户在MySQL授权系统中是默认管理帐户。需要注意的是在 MySQL授权系统中的用户是完全独立于Windows上登录用户。

用下列命令可将服务器作用一项服务安装:

C:\> mysqld –install

如果你用server名字在将服务器安装成一项服务的过程中遇到问题, 那就试试用全称路径名。举例来说:

C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld --install

你也可以将到mysql bin目录的路径加入到Windows 系统PATH 环境变量:

 在Windows桌面上,右击“我的电脑”,选择“属性”  出现系统属性菜单,选择“高级”,然后单击“环境变量”按钮。 在“系统变量”列表中选择“路径”,然后单击“编辑”按钮。这时会出现编辑系统变量对话框。  将光标放在“变量值”对应的文字的末尾(请使用 End key,以确保光标在最后的位置) 。然后输入 MySQL bin 目录的全称路径, (举个例子, C:\Program Files\MySQL\MySQL Server 5.0\bin), 注意应该用分 号将这个路径与其它值分开。 点击“确定”逐个关闭所有打开的对话框。现在你就可以在DOS系统下从系统的 任意目录中,通过输入任意可执行的 MySQL 程序的名字而找到该程序,不必再输入路径。这包括服务器、 mysql 客户和所有 MySQL 命令行比如 mysqladmin 和 mysqldump。  注意如果你在同一台机器上运行多个MySQL 服务器的话,就不要将MySQL bin 目录加入到 Windows 路 径中。

警告: 在手工编辑系统路径的时候一定要特别小心,如果不小心删除或改变了系统路径中的任何部分都将导致 误操作甚至导致系统不稳定。服务安装命令并不启动服务器,关于这点后面将详细介绍。

MySQL 5.0 在安装服务的过程中对附加参数提供的支持有限: 你可以在安装选项之后立即为服务命名,否则默认的服务名字是 MySQL。

 如果设置了一个服务名字,就可以用使用单一选项。通常按照约定,这应当是--defaults- file=file_name 来设置选项文件的名字,服务器在启动时会从选项文件中读取选项。可以使用单一选项而不用--defaults-file,但不推荐这样做。因为,--defaults-file 更加灵活,你可以 通过将多个选项放到指定的选项文件中而为服务器设置多个启动选项。同样,在MySQL 5.0中我们也不支持使用 不同于--defaults-file的选项,但5.0.3版本就可以这样做了。

 对于MySQL 5.0.1,你也可以在服务名字下设置一个 --local-service(本地服务)选项。这会使服务 器用LocalService Windows帐户运行。这种帐户只在Windows XP或更新的系统上才有。如果服务名字下既有-- defaults-file 也有 --local-service,那么它们之间不论次序。 对于安装成Windows服务的MySQL服务器来说,由下面的规则决定服务名字和服务器使用的选项文件:  如果服务安装命令没有指定服务名字,那么安装选项将默认服务名字为MySQL, 服务器将使用 MySQL服 务,并从标准选项文件中的 [mysqld]群中读取选择。  如果服务安装命令没有指定了一个服务名字,服务器将使用指定的服务名字并从从标准选项文件中与 服务名字相同的群中读取选项。 服务器也从标准文件选项文件中的[mysqld]群中读取选项。这保证可以从[mysqld]群中读取所有MySQL服务都 用的选项,而用指定服务名字按照的服务器使用和与指定服务名字相同的选项群。  如果安装命令在服务名字之后指定一个 --defaults-file 选项,那么服务器只从指定文件的 [mysqld] 群中读取选项而忽略标准选项文件。

下面的命令是一个复杂的例子:

C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld --install MySQL --defaults-file=C:\my- opts.cnf

在这里,由安装选项给出了默认服务名字MySQL。如果没有给出--defaults-file选项,那么这个命令将使服务 器从标准选项文件中的[mysqld]群中读取。然而在这里给出了--defaults-file选项,所以服务器只从指定文件 的[mysqld] 选项群读取。

你也可以在启动MySQL服务之前,在Windows Services 工具栏中将选项定义为启动参数。一旦MySQL服务器被安装成一项服务,Windows就会在启动时自动启动该服务。也可以在Services 工具栏中直接 启动MySQL服务器,或使用NET START MySQL命令也可。NET 命令不区分大小写。

作为服务运行时,mysqld无权使用控制窗口,因此在这里看不到消息。如果mysqld不能启动,就查错误记录看 看服务器是不是写下了什么说明问题原因的消息。错误记录在MySQL数据目录下(比如: C:\Program Files\MySQL\MySQL Server 5.0\data)。错误记录的后缀名是 .err。

MySQL作为服务安装的情况下,如果服务正在运行,Windows关闭的时候会自动停止服务。 如果你不想在boot 进程中自动启动服务,你可以将服务器作为手动服务安装。手动服务的安装需要选择“手动 安装” 选项而不是 “安装”选项:

C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld --install-manual

要删除作为服务安装的服务器时,首先要通过NET STOP MYSQL关闭正在运行的MYSQL,然后用“删除”选项删除 它:

C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld --remove 如果mysqld不是作为服务运行,可以用命令行启动它。

五、测试 MySQL安装

你可以通过执行下列任何一个命令来测试MySQL 服务器是否安装:

C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqlshow
C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqlshow -u root mysql
C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin version status proc
C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql test
如果mysqld对来自客户程序的TCP/IP 连接反应很慢,那么说明你的DNS可能有问题。在这种情况下,用--skip -name-resolve选项启动mysqld,而且在MySQL 授权列表的Host栏中只使用本地Host和IP。 你可以强迫 MySQL客户运用管理连接,而不用TCP/IP。方法是选定--pipe 或--protocol=PIPE 按钮,或指定 . (period)作为主机名。运行--socket 选项来规定管道名。

九、排除在Windows下安装MySQL的故障

如果是初次安装MySQL,你可能会遇到一些阻止MySQL启动的错误,这一部分的目的就是帮助你诊断和排除某些 故障。 在排查故障时,可用的第一项资源就是错误记录。MySQL 服务器的错误记录会记下阻止服务器启动的相关错误 。错误记录在数据目录下,my.ini文件中记载了数据目录的地址。默认的文件目录位置是C:\Program Files\MySQL\MySQL Server 5.0\data。 另外在MySQL服务运行过程中的控制信息也可能会记载一些相关的错误。在mysqld作为服务安装之后,从命令行 中执行NET START mysql命令查看是否有关于作为服务启动MySQL服务器的错误信息。

下面的例子是一些首次安装MySQL和启动服务器的过程中,可能遇到的常见错误信息:
System error 1067 has occurred.
Fatal error: Can't open privilege tables: Table 'mysql.host' doesn't exist
 当 MySQL 服务器找不到 mysql privileges database 或其它关键文件时,就会产生这样的信息。当 MySQL的原始数据或数据目录安装在不同于默认位置(分别是C:\mysql 和 C:\Program Files\MySQL\MySQL Server 5.0\data )时,常常遇到这个问题。 一种情况是MySQL已升级并安装到新的位置,但配置文件并没有反映新的安装位置。另外 ,可能会产生相互冲 突的新、旧配置文件。因此,在升级MySQL时,应确保删除旧的配置文件或重命名。 如果你将MySQL安装到了C:\Program Files\MySQL\MySQL Server 5.0以外的其它位置,你必须确保MySQL服务器 通过一个配置文件(my.ini) 知道安装的位置。my.ini文件必须在Windows目录下,通常是C:\WINNT 或 C:\WINDOWS。你可以从WINDIR环境变量的值来确定其具体位置,需要从命令提示符发出下列命令:

C:\> echo %WINDIR%

生成一个选项文件,并且可以用任何文本编辑程序修改,比如Notepad。举例来说,如果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 路径名是用(forward) slashes 定义的,而不是用 backslashes。如果你使用的 是 backslashes,你就需要将它们加倍:
[mysqld]
# set basedir to your installation path
basedir=C:\\Program Files\\MySQL\\MySQL Server 5.0
# set datadir to the location of your data directory
datadir=D:\\MySQLdata
如果你在MySQL配置文件改变了datadir值,那么你在重新启动MySQL服务器之前就必须将已有的MySQL数据目录 转移到相应的位置。

 Error: Cannot create Windows service for MySql. Error: 0

 如果你不先停止并删除现有的MySQL而重新安装或升级时,或用MySQL Configuration Wizard安装 MySQL时,就会产生这样的错误。因为当Configuration Wizard试图安装服务时,就会发现已经有一个同名的服 务。 对这个问题的一个解决方法是,在使用configuration wizard时选择一个服务名称,而不用默认的mysql 。这 可以使新的服务正确地安装,但旧的还放在那里。建议最好还是把不用的删掉。
要永久删除旧的mysql服务,需要用户以管理权限在命令行上执行下列命令:
C:\>sc delete mysql
[SC] DeleteService SUCCESS
如果你的Windows版本上没有sc工具栏,就从下面的网址上下载delsrv工具栏: 然后运用delsrv mysql syntax。

六、在Windows上升级MySQL

这部分介绍一些在Windows上升级MySQL的必需步骤。
1. 在升级之前,你应当一直支持目前的MySQL安装。 “Database Backups”
2. 在http://dev.mysql.com/downloads可以下载在Windows上安装MySQL 的最新内容。
3. 在升级MySQL之前,必须停止服务器。
如果服务器是作为服务安装的,要从命令提示符通过下列命令停止服务:

C:\> NET STOP MYSQL

如果不是作为服务安装的,就用下列命令停止MySQL服务器:

C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin -u root shutdown

当将4.1.5以前的版本升级到 MySQL5.0时,或将用Zip压缩文件安装的MySQL升级到用MySQL Installation Wizard安装的MySQL版本时,必须手动删除以前的安装和MySQL服务(如果服务器有作为服务安装的话). 用下列命令删除原来的MySQL服务:

C:\> C:\mysql\bin\mysqld --remove

如果不删除原有服务,MySQL Installation Wizard可能无法安装新的MySQL服务。

如果你从Zip 压缩文档安装MySQL,要么覆盖原有的MySQL安装(通常在C:\mysql),要么在不同的目录下安装 ,比如C:\mysql4。建议覆盖原有安装。

重启服务器。如果MySQL是作为服务运行的话,用NET START MySQL,或者直接调用mysqld。

Windows 和 Unix两种系统下的MySQL比较

MySQL在Windows上已经相当稳定。Windows版本的MySQL和相应的Unix版本的MySQL具有相同的特性,但存在以下 几点不同:

• Windows 95和线程

Windows 95分出约200字节的主内存给每一个线程。MySQL的每个连接创建一个新的线程,所以如果服务器处理 多个连接时,不应该在Windows 95下运行 mysqld。其他版本的Windows不存在这个bug。

• 限制端口数量

Windows系统下大概有4,000个可用端口,当一个端口的连接关闭时,需要2-4分钟才能重新启用该端口。当处 于代理连接和断开连接的高峰期时,可能使所有的端口在重新启用之前都处于关闭状态。如果发生这种情况, MySQL服务器将停止相应,尽管它还处于运行状态下。需要注意的是,机器上运行的其它应用程序也可能使用端 口,这也会使可用端口的数量下降。更多的信息请参看下面链接:

• 同时读取

MySQL依赖于调用pread()和pwrite()系统来使INSERT和SELECT可用。目前,我们使用mutexes来代替pread()和 pwrite()。我们打算用虚拟的界面来替代文件水平界面,这样我们就可以在NT,2000和XP系统上使用readfile ()/writefile()界面并获得较高的速度。目前MySQL 5.0只能执行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

因为MERGE 处理器处理隐藏于MySQL上一层的表格,这可使Windows下的被MERGE表格使用的DROP TABLE不工作。 因为Windows不允许dropping文件开启,你就必须转储清除所有的MERGE表格(使用FLUSH TABLES)或者在 dropping文件前先撤销MERGE表格。

• 数据目录和索引目录

Windows系统忽略了CREATE TABLE的数据目录和索引目录选项,这是由于Windows不支持符号连接造成的。在拥 有无功能realpath()调用的系统上也会忽略这些选项。

• 撤销数据库

你不能够撤销正在被某个线程使用的数据库。

• 从任务管理器内关闭MySQL

你不能够在任务管理器内关闭MySQL,也不能依靠Windows 95的关机操作关闭MySQL。你必须使用mysqladmin shutdown来关闭MySQL。

• 名称的大小写

在Windows下的文件名不区分大小写,所以Windows同样不区分MySQL数据库和表格的名称的大小写。唯一的限制 就是数据库和表格名称必须在给定的语句内全部使用相同的case来指定。

• ‘\’路径名分离字符

在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文件。

• 用户错误所导致的拒绝访问

如果你尝试运行MySQL代理程序来连接服务器,同时该服务器又在同一台机子上运行着,你就被当作'some- user'@'unknown'用户而被拒绝访问'mysql'数据库,这表明MySQL不能够恰当的解析主机名。要解决该问题,你必须创建一个名为\windows\hosts的文件,并包含下面的信息:
127.0.0.1       localhost
参考。(51CTO.COM教程)
阅读(1886) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~