在首次安装和运行MySQL时,您可能会遇到某些错误,阻止MySQL服务器启动。本节帮助您诊断和纠正这些错误。
您的第一个资源是在服务器问题时的错误日志。MySQL服务器使用错误日志来记录服务器启动时相关的错误信息。错误日志位于数据目录中,指定在您的my.ini
文件中。默认数据目录位置是C:\Program Files\MySQL\MySQL Server 8.3\data
,或C:\ProgramData\Mysql
在Windows 7和Windows Server 2008上。C:\ProgramData
目录默认是隐藏的。您需要更改文件夹选项以查看目录和内容。有关错误日志的更多信息和内容理解,请参阅第7.4.2节,“错误日志”。
有关可能的错误信息,也请查看控制台消息,当MySQL服务启动时显示。使用SC START mysqld_service_name
或NET START mysqld_service_name
命令从命令行安装mysqld作为服务,以查看MySQL服务器作为服务启动时的任何错误消息。请参阅第2.3.3.8节,“将MySQL作为Windows服务启动”。
以下示例显示您可能在安装MySQL并首次启动服务器时遇到的常见错误信息:
-
如果MySQL服务器无法找到
mysql
特权数据库或其他关键文件,它将显示这些消息:System error 1067 has occurred. Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
这些消息通常发生在MySQL基础目录或数据目录安装在不同于默认位置(
C:\Program Files\MySQL\MySQL Server 8.3
和C:\Program Files\MySQL\MySQL Server 8.3\data
,分别)时。这种情况可能发生在升级和安装MySQL到新位置,但配置文件未更新以反映新位置。此外,旧的和新的配置文件可能会冲突。请确保在升级MySQL时删除或重命名任何旧的配置文件。
如果您将MySQL安装到不同于
C:\Program Files\MySQL\MySQL Server 8.3
的目录,请确保通过使用配置(my.ini
)文件使MySQL服务器意识到这一点。将my.ini
文件放在Windows目录中,通常是C:\WINDOWS
。要确定其确切位置,从命令提示符下发出以下命令: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
在选项文件中,Microsoft Windows路径名使用正斜杠(/)而不是反斜杠(\)。如果您使用反斜杠,请将其双倍:
[mysqld] # set basedir to your installation path basedir=C:\\Program Files\\MySQL\\MySQL Server 8.3 # set datadir to the location of your data directory datadir=D:\\MySQLdata
选项文件值中反斜杠的使用规则在第6.2.2.2节,“使用选项文件”中给出。
如果您更改了
datadir
值在MySQL配置文件中,您必须在重新启动MySQL服务器之前移动现有的MySQL数据目录内容。 -
如果您重新安装或升级MySQL,而没有首先停止和删除现有的MySQL服务,然后使用MySQL配置向导配置MySQL,您可能会看到这个错误:
Error: Cannot create Windows service for MySql. Error: 0
这发生在配置向导尝试安装服务并找到同名的现有服务时。
解决这个问题的一种方法是在使用配置向导时选择一个不同的服务名称,而不是
mysql
。这使得新的服务能够正确安装,但留下了不再使用的旧服务。要永久删除旧的
mysql
服务,请以管理员权限在命令行中执行以下命令:C:\> SC DELETE mysql [SC] DeleteService SUCCESS
如果
SC
实用程序不可用于您的 Windows 版本,请从 http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/delsrv-o.asp 下载delsrv
实用程序,并使用delsrv mysql
语法。