本地计算机上的 MySQL 服务启动后停止

本地计算机上的 MySQL 服务启动后停止。有些服务如果没有被其他服务或程序使用就会自动停止。

有人能解决这个问题吗? 谢谢。

184057 次浏览

After installing it by mysqld --install. Try this mysqld --initialize. We got the same problem but it's now working.

还要记住将 NETWORKSERVICE 权限赋予该文件夹:

  1. 右键单击 Data文件夹
  2. 选择 Properties
  3. 选择 Security选项卡
  4. Advanced
  5. Change Permissions...
  6. Click Add...
  7. 类型 NETWORK SERVICE
  8. Check Names
  9. OK
  10. Select Full Control
  11. 点击 OK-四次
  12. 启动 MySQL 服务

在我的例子中,我尝试打开一个 DOS 提示符,然后 进入 MySQLbin\目录并发出以下命令:

mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini" --standalone --console

它告诉我,我错过了 "C:\Program Files\MySQL\MySQL Server 5.0\Uploads"文件夹; 我建立了一个并解决了问题。

在我的例子中,mysqld 启动和停止时没有错误消息。我需要使用“ Run as Administrator”打开命令提示符,然后运行 mysqld。

我这样做只是为了临时开发。我不建议在任何情况下作为管理员运行 MySQL。

这是上述故障排除之后的最后一步。

Rename or delete the folder under,

C: ProgramData MySQL MySQL Server 5.7

根据 MYSQL版本号更改文件夹名称。

Mysqld ——初始化

在 install 命令之后运行以上命令。 然后尝试开始服务-这应该工作。

搜索 services.msc,查找正在运行的服务,如果除了你想运行的服务(可能是 xampp 或 wamp)或使用与 mysql 相同端口的另一个服务(例如 Skype)之外,还有一个 mysql 服务正在运行,那么停止该服务,这样你就可以运行 mysql 服务了。

  1. 公开服务
  2. 右键单击 MYSQL 服务
  3. 选择登录
  4. 检查本地系统帐户
  5. 启动服务

在我的数据库运行良好很长一段时间后,我遇到了这个问题。原来是数据损坏。

在错误日志中:

2017-02-07T10:11:42.270567Z 0 [ERROR] InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT between the checkpoint 44002250712 and the end 44002250240.
2017-02-07T10:11:42.270606Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2017-02-07T10:11:42.577436Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
2017-02-07T10:11:42.577470Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2017-02-07T10:11:42.577484Z 0 [ERROR] Failed to initialize plugins.
2017-02-07T10:11:42.577488Z 0 [ERROR] Aborting

Then I had to delete the 2 ib_logfile* files, and it restarted again.

这可能是因为在服务器已经初始化之后更改了 lower_case_table_names

来自文件:

方法时才能配置 low _ case _ table _ name 更改服务器之后的小写 _ case _ table _ Names 设置 被初始化是禁止的。

这个问题的解决方案是在服务器安装时设置 lower_case_table_names参数,如下面的答案所述:

在 Windows 10的 MySQL 8.x 中无法设置 low _ case _ table _ name

如果使用版本8并编辑 my.ini,我发现记事本在 my.ini 文件的开头放置了3个十六进制字符。EF BB BF.在十六进制编辑器中删除文件开头的3个字符可以解决这个问题。

在版本8中,他们意外地将 Unicode 字符放入 ini 文件中。这导致记事本用字节顺序标记字符保存文件。

文件中的下一行是罪魁祸首“ The line # range from 1 to 2 ^ 32-1。“惟一”意味着每个 ID 必须是不同的有3个 Unicode 字符。这导致记事本将字节顺序标记附加到文本文件。

这个错误发生在我的案例中,当 security-file-priv 指向不存在的文件夹时,请确保它存在并且可读。

在 my.ini 中的代码示例行: secure-file-priv="D:/MySQL/uploads"

如果您已经将 data 目录(my.ini 中数据库根目录的路径)更改为外部硬盘驱动器,请确保连接了硬盘驱动器。

您还可能意外地在 my.ini文件中添加了一些错误的文本。确保文件开头没有添加无效字符。

什么都不管用,但我检查了 给你。我运行命令 qc sc mysql57并从中复制了 BINARY_PATH_NAME的值。之后,我检查了 这个,并在 my.ini文件中将 lower_case_table_names的值从0改为2。然后在命令提示符下运行这个命令 -<< BINARY_PATH_NAME >> --install-manual。在那之后,我启动了 MySQL57服务,它起作用了。

同样的问题也发生在我身上,没有任何效果... ... 我首先通过命令删除了服务(在我的例子中是 MySQL80和 MySQL) :

sc delete MySQL80
sc delete MySql

然后重新安装了 MySQL。我的是 MySQL 8.0。然后一切都恢复正常。

使用 Community 8.0.17,从8.0.16升级

可能有一种更安全的方法来做到这一点,但是因为我只是运行一个 dev box:

  1. 导航到数据文件夹
  2. 确保数据文件夹是空的。如果文件存在—— initialize 选项将失败
  3. 授予数据文件夹的系统完全控制权限
  4. 返回到命令提示符
  5. 运行 mysqld ——初始化

您现在应该可以在数据文件夹中看到所有必需的数据文件结构。如果没有创建它们,mysqld 进程就存在争用或不正确的安全性,无法正确地写入文件夹。

现在以任意方式启动命名服务(SC/NET/service.msc 等)

假设所有文件都是通过—— initialize 正确创建的,那么服务将启动。

Delete or rename the 2 following files from "C:\ProgramData\MySQL\MySQL Server 5.7\Data": Ib _ logfile0 Ib _ logfile1

当我安装 MySQL 8.x,编辑 my.ini 文件中的 max _ allow _ pack,然后在 Windows 10机器上重新启动 MySQL 时,我看到了这个错误。为了避免这个问题,我的建议是在十六进制编辑器中编辑 My.ini 文件(类似于 Fred)。不要使用记事本。它会对。Ini 文件。

本地计算机上的 MySQL 服务启动后停止

在 C: ProgramData MySQL MySQL Server 8.0 my.ini 中修改 my.ini 时发生此错误。

您可以搜索 my.ini 原始配置或检查您的配置以确保一切正常

按照下面的指示来拯救你的一天:

如果修改 my.ini 不正确,就会发现“本地计算机上的 MySQL 服务启动后停止”的问题。因此,您需要在“ C: ProgramData MySQL MySQL Server 8.0 my.ini”中再次检查 my.ini,以确保没有奇怪的命令。如果您不知道,并希望恢复到原来的,您可以在网上搜索关键字 “ my.ini 配置”,下载最新的,并复制到“ C: ProgramData MySQL 服务器8.0 my.ini”

对于删除 Windows 或 Linux 上的 SQL 服务的用户,可以执行以下步骤:

(窗口)

删除当前服务

在执行下面的操作之前,需要停止服务中的 MySQL80/MySQLXX 打开窗口的 commandLine 并作为管理员运行

Sc 删除 MySQL80 < = 如果您使用 MySQL80,它将删除服务中的 MySQL80

Sc 删除 MySQL < = 如果您使用“ MySQL —— initliize”,它将删除服务中的 MySQL

命令 Mysqld ——初始化只是在 Windows 或 Linux 的服务中创建 MySQL

因此,当你检查它的路径可执行,它错过了 my.ini,所以你不能使用你的 MySQL 服务器,虽然 MySQL 服务正在工作

对于 MySQL80

“ C: Program Files MySQL MySQL Server 8.0 bin mysqld.exe”—— install MySQL80—— default-file = “ C: ProgramData MySQL Server 8.0 my.ini”

对于 MySQLXX

“ C: Program Files MySQL MySQL Server X.X bin mysqld.exe”—— install MySQLXX —— default-file = “ C: ProgramData MySQL Server X.X my.ini”

它将使用 my.ini 创建 MySQLXX 服务

这样 MySQL 就能正常工作了,你就不需要再次安装你的 MySQL 了。

我不使用 Linux 或 Mac,所以我不能指导-但是你可以找到上面的答案作为参考

This problem is so complicated and depend on MySQL Version.My problem was happened on MySQL 8.0.2. When I've config my.ini file on notepad and save it.I soleved following @jhersey29 solution https://stackoverflow.com/a/55519014/1764354 but little different approch.

我的解决方案是通过 WorkBench Application 上的 Option 文件恢复 my.ini 文件并编辑配置值。 WorkBench 菜单示例

如果您在 Windows10上安装 WAMP64时遇到这个问题。检查 MySQL 文件夹中的数据文件夹是否丢失。我的 WAMP 3.2.3版本安装未能创建这样的文件夹。所以 wamp 图标是橙色的(正在运行的2个服务中的1个)。

一个快速修复方法是从 MySQL 位置运行这个命令。

C:\wamp64\bin\mysql\mysql5.7.31\bin\
mysqld --initialize-insecure

以上这些都不能正常工作,所以删除 mysql,重新安装 mysql,恢复如果有的话... 享受吧

我得到了和问题中显示的完全一样的信息。我已经尝试了很多建议,但运气不佳。我正要安装 WAMP (我在 Windows 上) ,正要首先卸载 MySql 8.0,这时我注意到安装中包含一个程序: “ MySQL Installer-Community”,所以我尝试了一下。使用这个安装程序,我建立了一个新的连接,向 root 用户添加了密码,添加了另一个使用密码的用户,为所有日志设置了我选择的位置,并运行了安装。 结果就是它现在完全起作用了。

Ini 文件应该保存为(编码) ANSI 而不是 UTF-8或其他文件。

我也遇到过同样的情况。我已经更改了 server-id = 2,并且在保存时得到了这个错误。经过大量的研究,我找到了解决办法。 之后的窗户里

更改 my.ini mysql 配置文件,将该文件保存为 ANSI 而不是 UTF-8

这招对我很管用。

像5.6或8这样的 mysql 的另一个实例同时运行

80号码头被预定了

请到 > > 服务 > > 停止所有其他实例 > > 禁用它们

在我的情况下,问题解决了,服务也开始了

在使用命令 mysqld —— initialize 之前,请确保数据文件夹是完全空的

转到“ C: ProgramData MySQL MySQL Server 8.0 Data [ machine name ]。然后检查最后一行-它应该会告诉你为什么它失败了。在我的例子中,数据库之间的表空间 ID 是重复的。

它看起来像这样:

2021-09-12T05:19:22.815152Z 0 [Warning] [MY-010915] [Server] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
2021-09-12T05:19:22.818357Z 0 [System] [MY-010116] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.22) starting as process 30664
2021-09-12T05:19:22.866774Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2021-09-12T05:19:22.908983Z 1 [ERROR] [MY-012209] [InnoDB] Multiple files found for the same tablespace ID:
2021-09-12T05:19:22.911667Z 1 [ERROR] [MY-012202] [InnoDB] Tablespace ID: 124 = ['db1\accounts.ibd', 'db2\accounts.ibd']
2021-09-12T05:19:22.915514Z 1 [ERROR] [MY-012930] [InnoDB] Plugin initialization aborted with error Failed, retry may succeed.
2021-09-12T05:19:22.918627Z 1 [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine
2021-09-12T05:19:22.927714Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2021-09-12T05:19:22.930912Z 0 [ERROR] [MY-010119] [Server] Aborting
2021-09-12T05:19:22.934432Z 0 [System] [MY-010910] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe: Shutdown complete (mysqld 8.0.22)  MySQL Community Server - GPL.

将 xampp 文件夹在窗口中的权限更改为“身份验证用户”的完全控制,解决了我的问题。

当我添加参数时,在安装过程中发生了这种情况

audit-log = ON

在 my.ini 文件中,添加以删除它,使其正常工作