尝试启动MySQL时出现1067错误

时间:2010-11-11 20:30:23

标签: mysql mysql-error-1067

我在Windows 7上安装了MySQL。当我尝试启动MySQL服务时,我收到错误1067:进程意外终止。记录消息:

101111 22:27:11 [Note] Plugin 'FEDERATED' is disabled.
C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld: Table 'mysql.plugin' doesn't exist
101111 22:27:11 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
InnoDB: Log scan progressed past the checkpoint lsn 0 37356
101111 22:27:11  InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
InnoDB: Doing recovery: scanned up to log sequence number 0 44233
101111 22:27:11  InnoDB: Starting an apply batch of log records to the database...
InnoDB: Progress in percents: 86 87 88 89 90 91 92 93 94 95 96 97 98 99 
InnoDB: Apply batch completed
101111 22:27:12  InnoDB: Started; log sequence number 0 44233
101111 22:27:12 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist

我该怎么办?

27 个答案:

答案 0 :(得分:25)

解决方案是在安装路径中安装没有空格的MySQL。 Windows 7,64位

答案 1 :(得分:17)

阻止mysqld windows服务运行的另一件事是,如果你已经运行mysqld.exe(但不是作为服务)并占用端口3306.当服务尝试启动并看到端口3306已被占用时,它失败了。

只需打开Windows任务管理器,在“进程”选项卡下查找“mysqld.exe”。如果您看到它,请将其删除,然后再次尝试启动该服务。

c:\> net start [servicename]

示例:c:\> net start MySQL

答案 2 :(得分:11)

我的问题的解决方案是查看我的安装目录,找到/ data文件夹,并将其内容复制到我的.ini / .cnf配置文件中指定的数据文件夹。

答案 3 :(得分:7)

我的问题发生在电源故障后。我收到错误1067该进程意外终止。 MySQL不用说没有启动。答案很简单

  1. 打开mysql path \ data
  2. 删除(删除)ib_logfile0和ib_logfile1。
  3. 启动服务

答案 4 :(得分:3)

我刚刚遇到类似的问题,我发现这是一个权限问题。当我复制数据库“data”时,我必须添加“NETWORK SERVICE”的权限

答案 5 :(得分:2)

我遇到了同样的问题。在我的情况下,它是“用户错误”(虽然Windows安装程序应该更聪明,并阻止我提交这样的错误。)

在安装过程中,如果更改了默认安装路径,请确保在“自定义安装”屏幕上为“服务器数据文件”使用相同的路径,然后在“MySQL”中的“InnoDB表空间设置”中使用相同的路径。服务器实例配置向导“

答案 6 :(得分:2)

我在更新my.ini for Windows 7中的datadir时遇到了问题。

我希望数据存储在不同的驱动器上,我通过复制整个文件夹从另一台PC上移动这些数据。我将datadir更改为所需的驱动器并保存my.ini文件没有问题。

但是mysql无法启动。我再次打开my.ini文件,它似乎已被更改。 然后,我注意到my.ini上的日期没有改变。所以我必须更改安全权限才能给我写入权限。

这次保存时,日期发生了变化,mysql开始访问所有正确的数据。

答案 7 :(得分:1)

我将mysql数据文件夹替换为windows目录连接。 我怀疑ib_logfile0 / 1和/或ibdata1已损坏。

尝试删除这些文件和computername.err。然后重启mysql服务。 这就是我做的,成功的。

在完全重新安装mysql之后将ibdata1文件复制到交叉点目录并通过交换点替换dir,重新启动mysql是不够的。

你必须让mysql重建这些文件。

答案 8 :(得分:1)

在搞乱太多事情之前,请检查服务尝试运行的用户。在我的情况下,它是NETWORK,这个人没有对需要它的某些位置的写权限。将用户更改为本地系统帐户就可以了。

如果事件查看器显示任何错误,例如"无法创建测试文件C:\ Program Files \ MySQL \ MySQL Server 5.6 \ data \ XXX.lower-test& #34; ,此解决方案很有可能发挥作用。 祝你好运!

答案 9 :(得分:0)

遇到同样的错误,下面是我为mysql-5.7.14-winx64工作的原因和解决方案

原因:DATA文件夹有一些缺少的默认文件夹和文件

解决方案:从DATA文件夹中删除所有内容,我认为它是一个全新安装,所以备份你需要的任何东西。然后从命令提示符运行它,它将创建所需的文件和文件夹 " mysqld --initialize --console" 现在运行" mysqld"它应该运作良好。

答案 10 :(得分:0)

我刚刚发现,在设置中我选择了 InnoDB,而实际上我所有现有的数据库都是 MyIsam 格式。我卸载然后重新安装,选择 MyIsam,一切正常。

答案 11 :(得分:0)

我在本地两台计算机上运行MariaDB(与MySQL兼容)。我不确定是什么引起了错误,但我没有尝试过。因此,我停止了该服务,删除了MariaDB目录(数据目录除外)中的所有内容,并从辅助计算机中复制了文件,据我所知,一切都运行良好。

对于实时服务器,情况会有所不同,超级专家可能会添加见解注释(例如,数据目录之外的内容可能与阻止数据有关损坏还是索引?)。我只需要停止该服务,然后每个月左右复制一次整个目录,然后再次启动该服务即可。

答案 12 :(得分:0)

在我的情况下,为了从mysql服务器中删除繁重的架构,只需转到C:\ ProgramData \ MySQL \ MySQL Server 5.7 \ Data并删除相关文件夹。但它没有被删除,因为mysqld.exe正在阻止它。所以我停止了mysqld.exe,删除了该文件夹,然后所有的模式从mysql workbench的列表中消失了。无论我多么努力重启mysql服务,它都没有,除非我从垃圾中恢复该文件夹。 希望它可以帮助那些尝试过同样捷径的人。

答案 13 :(得分:0)

......一个旧的...反正我和MariaDB有同样的问题

在我的情况下,大多数pathes包含特殊字符,如:# 用双引号包装my.ini中的pathes就可以了 - 例如。

datadir="C:/#windata64/db/MariaDB/data"

答案 14 :(得分:0)

在我的实例中,它与文件名中的空格无关。我使用MSI安装程序自定义配置,并选择排除默认数据库,假设它只是像Northwind / Adventureworks。不,它包括核心的MySql系统数据库......一旦我将它添加到它运行的安装中。

答案 15 :(得分:0)

同时检查您在my.ini中写的所有目录是否存在。

我的问题是tmpdir不存在,所以MySQL守护程序会出现错误1067。

[mysqld]
port= 3306
tmpdir = "C:/tmp"

在这种情况下,C:/tmp必须存在。

答案 16 :(得分:0)

在我的情况下,我安装并运行了另一个MySQL版本。 我通过进入mysql_error.log文件找到了这个。 我通过转到服务并停止运行MySQL版本并设置手册来解决这个问题,并启动所需的mysql。

答案 17 :(得分:0)

问题看起来目录中没有数据。 从您以前的目录或从C:\ Program Files \ MySQL \ MySQL Server 5.5 \ data复制至少mysql目录。 然后再试一次。

答案 18 :(得分:0)

当查看mysql日志(数据文件夹下的.err文件)时,我可以看到以下内容

21:41:47 UTC - mysqld得到异常0xc0000005; 这可能是因为你遇到了一个bug。这个二进制文件也有可能 或者它所链接的其中一个图书馆是腐败的,不正确的, 或配置错误。此错误也可能由硬件故障引起。 试图收集一些有助于诊断问题的信息。 因为这是一次崩溃而且肯定是错误的,这些信息 收集过程可能会失败。

我意识到我在插入USB时正在启动服务。说实话,我重新启动机器后重新启动服务后问题得以解决。此外,我在重启之前删除了ib_logfile0和ib_logfile1文件。虽然事件记录器指示“InnoDB:您的数据库可能已损坏,或者您可能已复制InnoDB表空间而非InnoDB日志文件。请参阅http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html获取信息

  

块引用

关于强制恢复。有关详细信息,请参阅http://www.mysql.com上的“帮助和支持中心”,我不这么认为,因为我从未更改任何配置。

答案 19 :(得分:0)

我也可以使用Table ' mysql.plugin'不存在 如果通过' msiexec.exe安装MYSQL Server 5.1'  DataDir我把它作为C:\ MYSQL \ MySQL_Server_5_1 \ data \

但令我惊讶的是在C:\ MYSQL \ MySQL_Server_5_1 \ data \ data

中创建数据

添加了数据字样。所以我从

更改了my.ini文件
datadir="C:/MySQL/MySQL_Server_5_1/Data/" .

datadir="C:/MySQL/MySQL_Server_5_1/Data/data"

然后我可以使用  净启动MYSQL51 然后 mysqld.exe运行并出现在任务管理器

答案 20 :(得分:0)

就我而言,我在MySQL安装程序中为我的日志文件选择了一个自定义路径。我已将日志文件放在我的用户文件夹C:\Users\%MY_USERACCOUNT%\Documents\mysql-logs中,默认情况下, NETWORK SERVICE (或Windows中的任何其他非管理员useraccount)无法访问用户&# 39; s文件夹。

我通过更改日志文件夹的安全选项来修复此问题,为 NETWORK SERVICE 提供修改权限读/写/修改权限。

答案 21 :(得分:0)

我遇到了同样的错误。类似的方法对我而言。据我所知,my.ini文件中对datadir的引用有些奇怪。即使我手动编辑它,我似乎也没有任何影响,直到我把一切都吹走了。希望我有更好的消息......首先进行数据库备份。

对我来说,让它发挥作用的关键是:

1)从settings->控制面板中删除以前的安装。重启你的机器。 2)一旦机器恢复,强行删除以前的安装目录。    [我的是C:\ apps \ MySQL \ MySQLServer-5.5 \,因为我拒绝使用c:\​​ program files .. 3)强行删除以前的datadir目录[我的是c:\ data \ mysql]。 4)强制删除以前的默认数据目录[C:\ Documents and Settings \ All
   用户\应用程序数据\ MySQL]。 5)重新运行安装,选择相同的安装目录。跳过实例    安装结束时的配置器/向导。 6)确保将../bin目录添加到路径中。验证它。 7)手动运行实例配置器/向导    设置root密码,port [3306]。    它会尝试启动它。再次,我的失败开始了    [呃!什么都没有新!!! ] 8)现在,手动编辑安装目录中的my.ini文件,并更正datadir    设置为[datadir =“C:/ Data / MySQL /”] MATCH CAPITALIZATION !!!! 9)通过命令提示符[sc qc mysql]验证服务是否设置正确     应该是这样的:

C:\ dev \ cmdz> sc qc mysql [SC] GetServiceConfig SUCCESS

SERVICE_NAME:mysql         TYPE:10 WIN32_OWN_PROCESS         START_TYPE:2 AUTO_START         ERROR_CONTROL:1 NORMAL         BINARY_PATH_NAME:“C:\ apps \ MySQL \ MySQLServer-5.5 \ bin \ mysqld”--defaults-file =“C:\ apps \ MySQL \ MySQLServer-5.5 \ my.ini”MySQL         LOAD_ORDER_GROUP:         标签:0         DISPLAY_NAME:MySQL         依赖:         SERVICE_START_NAME:LocalSystem

10)复制在下创建的默认数据目录的内容     C:\ Documents and Settings \ All Users \ Application Data \ MySQL [基本上全部都在    这个目录到你想要的    数据目录c:\ data \ mysql]。确保获得C:\ Documents and Settings \ All
   Users \ Application Data \ MySQL \ mysql目录。这有host.frm文件和其他。
   您最终应该得到一个目录为c:\ data \ MySQL \ mysql ...

的目录

11)重命名默认目录       C:\ Documents and Settings \ All Users \ Application Data \ MySQL    至       C:\ Documents and Settings \ All Users \ Application Data \ MySQLxxx    所以找不到它......

12)快速祈祷......

13)使用[net start mysql]

从命令行开始

这让它对我有用......

最好的运气!

答案 22 :(得分:0)

检查文件“C:\ Program Files \ MySQL \ MySQL Server 5.1 \ my.ini”

my.ini中的datadir行应指定路径。检查该datadir路径的内容。它是否包含名为“mysql”的文件夹和另一个名为“test”的文件夹?

如果没有,这里有两个选择:

  1. 将my.ini中的datadir行更改为正确的位置。这可能是C:\ ProgramData \ MySQL \ MySQL Server 5.1 \ data

  2. 清除datadir路径的现有内容。将C:\ ProgramData \ MySQL \ MySQL Server 5.1 \ data的内容复制到您的datadir路径。重新启动mysql服务应该重建空数据库。

答案 23 :(得分:0)

在我的情况下 innodb_data_home_dir 不再正确,因为当我向系统添加新驱动器时,我已经洗了一些驱动器字母

答案 24 :(得分:0)

在我的情况下,我已经在我的安装中的第二个磁盘中解压缩XAMPP,“F”。当我尝试作为服务启动时,返回是“1067”。解决方案是编辑my.ini,在文件行中插入“f:”驱动器。它解决了这个问题。

答案 25 :(得分:0)

我遇到了同样的错误,是由日志文件路径中的非标准字符引起的。 为了解决这个问题,我找到了my.ini配置文件(在我的情况下为C:\ProgramData\MySQL\MySQL Server 5.6\my.ini)并修改了密钥slow_query_log_filelog-error。 之后我成功地启动了MySQL服务。

答案 26 :(得分:-1)

如果您尝试在带有GPT分区的Windows 10安装上运行MySql,请尝试以下操作:

今天的系统通常在使用GPT格式化的磁盘上运行。这是因为Windows 10需要安装这样的分区。问题是MySql无法处理这种分区样式,所以它崩溃了。这是我的解决方法:

  • 创建虚拟磁盘:manual here
  • 使用MBR格式化此VHD
  • 在新VHD上安装MySql自定义(不要忘记为数据库创建用户)

这应该是它! :)

参考链接: Issue with MySql installation on Windows 10