解决服务器问题时你的第一资料是错误日志。MySQL服务器使用错误日志来记录服务器不能启动的信息。错误日志位于my.ini文件指定的数据目录中。默认数据目录位于C:Program FilesMySQLMySQL Server 5.1dat。
另一个错误相关信息源是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权限数据库或关键文件时会出现这些消息。当MySQL基或数据目录没有安装在默认位置(C:mysql和 C:Program FilesMySQLMySQL Server 5.1data),而是安装到其它位置时通常会遇到该问题。
发生该问题的一种情况是对MySQL进行升级或安装到了新位置,但是没有对配置文件进行更新以对应新的安装位置。此外还可能是新旧配置文件冲突,当升级MySQL时,一定要删除或重新命名旧的配置文件。
如果你没有将MySQL安装到C:Program FilesMySQLMySQL 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 FilesMySQLMySQL Server 5.1
# 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时,会遇到该问题。发生的原因是,当配置向导试图安装服务时,它发现已经有一个同名的服务。
解决该问题的一个方案是使用配置向导时选择mysql之外的其它服务名。这样可以正确安装新服务,但保留了原来的服务。但是这样不好,最好是卸掉不再使用的旧服务。
要想永远卸掉旧的MySQL服务,通过管理权限用户在命令行执行下面的命令:
C:>sc delete mysql
[SC] DeleteService SUCCESS
如果Windows版本中没有sc工具,可以下载delsrv工具并使用delsrvMySQL语法。