mysql

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 NTWindows 2000Windows XPWindows Server 2003,确保登录的用户名具有管理员权限。

3.    选择安装位置。传统安装中MySQL服务器安装到C\mysqlMySQL 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.1C:\Program Files\MySQL\MySQL Server 5.1\data)

·         需要调节服务器设定值。

MySQL服务器在Windows中启动时,它从两个文件中寻找选项:Windows目录中的my.ini文件和C\my.cnf 文件。Windows目录典型名称为C\WINDOWSC\WINNT。可以使用下面的命令从WINDIR环境变量值确定自己的确切位置:

C\> echo %WINDIR%

MySQL首先从my.ini文件中寻找选项,然后从my.cnf文件中寻找。为了避免混淆,最好只使用一个文件。如果你的PC使用了一个引导加载器,其中C不是引导盘,唯一的选则是使用my.ini文件。不管你使用哪个选项文件,必须为纯文本文件。

还可以使用MySQL分发中的示例选项文件。在安装目录中查找以下文件:my-small.cnfmy-medium.cnfmy-large.cnfmy-huge.cnf,你可以重新命名并复制到相应位置用作基本配置文件。

可以用任何文本编辑器来创建并修改选项文件,例如记事本。例如,如果MySQL安装在E\mysql数据目录安装在E:\mydata\data,你可以 创建含有[mysqld]部分的选项文件,指定basedirdatadir参数的值:

[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

已经编译过,可以进行完全调试和自动内存分配检查,用于表InnoDBBDB

mysqld

优化的二进制,支持InnoDB

mysqld-nt

优化的二进制,支持Windows NT2000 XP,有命名管道。

mysqld-max

优化的二进制,支持InnoDBBDB表。

mysqld-max-nt

mysqld-max,但是已经编译过,支持命名管道。

已经对所有前面的二进制进行了优化以适用现代Intel处理器,但是应当工作在Intel i386-类或更高的处理器上。

所有Windows MySQL 5.1服务器支持数据库目录符号链接。

MySQL支持所有Windows平台的TCP/IPmysqld-ntmysql-max-nt服务器支持Windows NT2000XP2003的命名管道。然而,在所有平台下默认使用TCP/IP(在许多Windows配置中,命名管道比TCP/IP慢)

命名管道在以下条件下使用:

·         如果使用--enable-named-pipe选项启动服务器,则启用了命名管道。需要明确使用该选项,因为当使用命名管道关闭MySQL服务器时,某些用户会遇到问题。

·         只有mysqld-ntmysqld-max-nt服务器,并且服务器运行在支持命名管道的Windows版本(NT2000XP2003),才能够使用命名管道连接。

·         这些服务器可以运行在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/获得最新的WinsockWindows 98包含新的Winsock 2库,因此不需要更新库。

在基于NT的系统中,例如 Windows NT2000XP2003,客户端可以有两个选择。可以使用TCP/IP,如果服务器支持命名管道连接,也可以使用命名管道。要想使MySQL使用Windows NT 4中的TCP/IP,你必须安装服务pack 3(或更新的补丁)

如果用--shared-memory选项启动,WindowsMySQL还支持共享内存连接。客户端可以通过--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 NT2000XP2003中启动服务器,服务器则在前台运行,在服务器退出前,不会出现命令提示。因此,当服务器运行时,应当打开另一个控制台窗口来运行客户端程序。

下述命令可以停止MySQL服务器:

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

该命令调用MySQL管理工具mysqladmin连接服务器并告知它关闭服务。该命令使用MySQL root用户连接,这是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 NT2000,XP2003)中,建议将MySQL安装为Windows服务,当Windows启动、停止时,MySQL也自动启动、停止。还可以从命令行使用NET命令,或使用图形Services工具来控制AMySQL服务器。

Windows控制面板(Windows 2000,XPServer 2003管理工具下面)中可以看见Services工具(Windows Service Control Manager)建议从命令行安装活卸载服务器时关闭Services工具。这样可以防止许多错误。

安装MySQL Windows服务之前,应当使用下面的命令先停止当前正运行的服务器:

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

注释:如果MySQL root用户账户有密码,你需要调用命令 C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqladmin -u root -p shutdown并根据提示输入密码。

该命令调用MySQL管理工具mysqladmin,连接服务器并告知它关闭服务。该命令使用MySQL root用户连接,这是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键确保光标位于文本的最后)。然后输入MySQL bin目录   的完整路径(例如,C:\Program Files\MySQL\MySQL Server 5.1\bin),请注意应使用分号将该路径与该域内的其它值隔离开。一次关闭该对话框和各个对话框,点击OK直到打开的所有对话框被关闭。你现在可以在DOS提示符下从系统的任何目录输入MySQL可执行程序名来调用MySQL可执行程序,而不必提供路径名。包括服务器、MySQL客户端和所有MySQL命令行实用程序,例如mysqladminmysqldump

·         请注意在同一个机器上运行多个MySQL服务器时,不需要在Windows PATH中加入MySQL bin目录。

警告:编辑系统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服务之前,在Windows Services工具中指定启动参数选项。

MySQL服务器安装为服务后,Windows启动时自动启动服务。还可以从Services工具直接启动服务,或使用命令NET START MySQLNET命令忽略大小写。

做为服务运行时,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列只使用localhostIP号。

可以通过--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\WINNTC\WINDOWS。可以在命令提示符下输入下面的命令从WINDIR环境变量值中确定确切位置:

C\> echo %WINDIR%

可以通过文本编辑器(例如记事本)来创建并修改选项文件。例如,如果MySQL安装在E\mysql数据目录在D:\MySQLdata,你可以创建选项文件并设置[mysqld]来指定basedirdatadir参数的值:

[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语法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值