Windows下对MySQL安装的故障诊断与排除?

Windows下对MySQL安装的故障诊断与排除?,第1张

首次安装、运行MySQL时,你可能会遇到一些错误,使MySQL服务器不能启动。本节的目的是帮助你诊断并纠正这些错误。 解决服务器问题时你的第一资料是错误日志。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语法。

应该是服务启动不了. 点击 log 页面 , 根据提示查找原因,解决问题

一、确认MYSQL已经配置且正确 

重新配置 

如果是重新安装的MYSQL,请确认安装后的MYSQL经过第一次配置,否则会缺少my.ini文件,配置方法,可以在安装到最后一步时选择,现在开始配置MYSQL,或在程序组中运行MYSQL配置向导。配置完成后,要确保my.ini文件中[mysqld]字段下至少有basedir安装目录路径和datadir数据库路径。 

配置之前,如果原来已经有过MySQL配置,可以先在MYSQL向导中进行执行一次REMOVE INSTANCE,然后再重新配置。 

覆盖数据表 

默认的MYSQL数据库会安装到My Document下,所以如果您的数据库目录在其它路径下,可以先把MYSQL停止掉,然后把数据库剪切到其它路径,然后拷贝相关数据表进入同一目录即可。 

如果MYSQL数据表使用不同的账户,还需要在MYSQL创建账户,或直接使用原来的MYSQL数据表覆盖(需确认之前的MSYQL数据表是未损坏的)。 

解决无法启动 

遇到无法启动MYSQL时常见解决方法: 

A、先使用命令C:\Program files\mysql\bin\mysqladmin-u root -p shutdown来关闭MYSQL 

B、再在cmd命令行下,执行net start mysql启动mysql。 

二、1067错误常见解决方法 

故障现象 

如果在停止MYSQL(net stop mysql)或启动MYSQL时,出现1067错误,错误信息“MySql 服务正在停止...系统出错(A system error has occurred.)...系统发生 1067 错误(System error 1067 has occurred.),进程意外终止(The process terminated unexpectedly.)”等。 

常见解决方法 

如果以前一直运行OK的,请先按照上面的“无法启动”解决方法执行一次看看。 

如果进行过Remove Instance *** 作,再次重建时后,一定要检查my.ini文件中的datadir是否已被还原了,如果该地址下数据库不存在,也将报告1067错误,只需要修改成真实的数据库目录地址,然后手动启动即可。 

检查MYSQL目录权限 

检查my.ini文件中[mysqld]字段下是否有basedir安装目录路径和datadir数据库路径,my.ini可能需要出现在两个地方,MYSQL的安装目录和Windows目录(假设是windows环境)下,都要检查一下。 

有时候删除%windir%/my.ini文件然后再重新配置也可以解决,再次配置后检查一下Windir目录下是否有my.ini文件,有时把安装目录下最新的my.ini拷贝过去覆盖一下也能解决问题。 

如果是Linux环境,试一下把mysql.server拷贝至/etc/rc.d/init.d/下,然后再运行chkconfig mysql.server,之后就可以在命令行中设置PATH、使用命令执行mysql启动。 

三、非法关机造成的MYSQL无法启动问题 

如果是因为非法关机等原因导致MYSQL无法启动或启动有问题的,最好使用重新安装的或确认是OK的MYSQL数据表及ibdata1、mysql.pid、ib_logfile0等文件进行覆盖,天缘试过遇到过多次这种情况,就是原来的MYSQL表有问题了,总是无法启动,但是更换成新表就可以。 

四、重装MYSQL 

发现MYSQL有问题时,最便捷的方法,是先把mysql卸载掉,然后重装重新配置,具体方法如下: 

1、卸载MYSQL,清理掉安装目录和Windows目录下的my.ini文件。 

2、检查任务管理器中是否还有mysql进程,如果有,可以把mysqld.exe杀掉,或者先杀掉再卸载也可以。 

3、在cmd命令窗口,执行:sc delete mysql,该命令是清理注册服务命令。 

3. 重装 mysql 

如果是安全设置以后出现这个问题,可能是因为mysql以低权限运行的时候因为密码策略等问题导致,大家看恶意将mysql的启动用户更下下密码,然后在服务项里设置下即可。

安装mysql数据库时,如果重新安装,很容易遇见apply security setting error,即在配置mysql启动服务时,在启动apply security setting时会出错,原因是卸载mysql时并没有完全删除文件,所以有必要手动清除这些,要清除的文件主要:

一、mysql的安装目录,一般为C:\Program Files目录下。

二、mysql的数据存放目录,一般在C:\Documents and Settings\All Users\Application Data目录下(需要注意的时Application Data这个文件夹默认是隐藏的,要通过 工具->文件夹选项->查看->显示所有文件与文件夹 来设置隐藏文件可见)。

三、删除注册表数据,通过regedit,删除以下几个文件:

引用

HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Applications/MySQL

HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Services/Eventlog/Applications/MySQL

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Eventlog/Applications/MySQL


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5936548.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-08
下一篇 2023-03-08

发表评论

登录后才能评论

评论列表(0条)

保存