Chinaunix首页 | 论坛 | 博客
  • 博客访问: 101396170
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Mysql/postgreSQL

2008-05-11 17:25:51

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。可以从获得最新的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\mysqlC:\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工具,可以从下载delsrv工具并使用delsrvMySQL语法。

阅读(398) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~