MAMP MySQL服务器无法启动。没有MySQL进程正在运行。

50

我的MAMP mysql服务器无法启动。所有我在网上看到的建议都说要检查是否有其他mysqld进程正在运行,如果存在则将其杀死,那么问题就应该解决了,但对于我来说并没有。

以下是错误日志:

130415 13:42:12 mysqld_safe Starting mysqld daemon with databases from /Library/Application Support/appsolute/MAMP PRO/db/mysql
130415 13:42:12 [Warning] Setting lower_case_table_names=2 because file system for /Library/Application Support/appsolute/MAMP PRO/db/mysql/ is case insensitive
130415 13:42:12 [Note] Plugin 'FEDERATED' is disabled.
130415 13:42:12 InnoDB: The InnoDB memory heap is disabled
130415 13:42:12 InnoDB: Mutexes and rw_locks use GCC atomic builtins
130415 13:42:12 InnoDB: Compressed tables use zlib 1.2.3
130415 13:42:12 InnoDB: Initializing buffer pool, size = 128.0M
130415 13:42:12 InnoDB: Completed initialization of buffer pool
130415 13:42:12 InnoDB: highest supported file format is Barracuda.
130415 13:42:13  InnoDB: Waiting for the background threads to start
130415 13:42:14 InnoDB: 1.1.8 started; log sequence number 1707549
130415 13:42:14 [Note] Event Scheduler: Loaded 0 events
130415 13:42:14 [Note] /Applications/MAMP/Library/bin/mysqld: ready for connections.
Version: '5.5.25'  socket: '/Applications/MAMP/tmp/mysql/mysql.sock'  port: 0  Source distribution

看起来连接对我来说是开放的,但是MAMP仍然报错,显示:“MySQL无法启动。请检查日志获取更多信息。”

有什么建议?


我最终解决了这个问题,但不幸的是我甚至都记不得怎么做了!对不起@Christer,如果我想起来了,我会再次发布的。 - jordancooperman
尝试一下官方MAMP站点上的这个: https://documentation.mamp.info/en/MAMP-PRO-Mac/FAQ/MySQL/MySQL-will-not-start/对我来说有效 :) - Kedar.Aitawdekar
28个回答

149

对我有效的方法是删除mysql目录中的所有文件(但不包括目录)。

编辑#2根据下面的答案,您只需要删除日志文件:[ib_logfile0,ib_logfile1]

因此,请退出MAMP,然后在终端中执行以下操作:

rm /Applications/MAMP/db/mysql/ib_logfile* #(or wherever your MAMP is installed)

编辑!有些人提到,如果出现问题,您可能需要先备份这些文件,因此最好只使用mv命令:

mv /Applications/MAMP/db/mysql/*  /tmp/.

如果这不起作用,请返回并杀死所有进程:sudo killall -9 mysqld

这里也有重复的内容:mysql server won't start MAMP


4
这句话的意思是:执行 rm /Applications/MAMP/db/mysql/* 命令完成了任务! - loQ
11
对我来说,删除/Applications/MAMP/db/mysql56内所有非目录文件解决了我的问题。感谢您节省了我的时间。 - Jageet Mohan J
2
"rm /Applications/MAMP/db/mysql56/*" 对我有用,正如之前的评论所述,这将删除文件并保留目录。 - Skelly1983
7
删除文件后,mysql重新启动了;但我的Wordpress网站出现了问题。 现在在phpmyadmin中显示“数据库没有表”和“未定义分区!”。 - Milad
7
这是个糟糕的建议。在没有备份的情况下,我删除了那些文件,现在我的数据库显示为空表。干得好。 - October Eleven
显示剩余9条评论

88

2
太棒了!谢谢!我按照之前建议的方法删除了MAMP/db/mysql56中的所有文件,但是我的每个WP站点都想要重新安装。我从TimeMachine恢复了所有文件,然后只删除了日志文件,成功了! - danzo
8
这种方法比清理所有表格要有效得多。在我看来,被采纳的答案是有破坏性的,而且不是正确的答案。 - Anriëtte Myburgh
5
这个方法很好用,你不需要删除mysql56里面的所有文件,只需删除这两个就可以了。谢谢。 - rekt0x
1
我删除了这个答案中提到的两个文件,截至今天我的MySQL成功启动。太棒了! - Oluwatobi Samuel Omisakin
请接受这个答案@jordancooperman?被接受的答案是有破坏性的。 - Peter Højlund Palluth

32

由于这里的任何答案都没有解决我的特定问题,我应该将自己的解决方案添加到列表中。

当 MAMP 仍在运行时,我不得不强制重启计算机。有时会出现问题,在重新启动计算机后,MAMP 可以启动 Apache服务器,但由于某种原因无法启动 MySQL服务器

我解决此问题的方法是:

  • 关闭 MAMP
  • 进入应用程序/MAMP/tmp/mysql
  • 删除文件mysql.sock.lock
  • 重新启动 MAMP

1
肯定需要更多的赞,对于我的 MAMP 版本 5.5 来说,这是唯一解决问题的方法。非常感谢! - Robert Sinclair
1
我为这个答案投了一票。其他的都不行,只有这个可以。锁文件过期了。干杯! - Soulriser
1
绝对是宝藏,救了我一整天的时间和无尽的挫败感。 - Souvik Ghosh
1
我苦苦挣扎了三个小时来解决这个问题,但你救了我的命并帮助了我。非常感谢你。顺便说一下,它以前一直运行得很完美,但当我今天更新了我的MacOS Monterey之后,mysql服务就挂了,然后我尝试了许多解决方案,除了你的这个完美解决方案外,其他都没有起作用。再次感谢 :) - Kamlesh
1
谢谢,先生!在找到这个之前,我都快抓狂了 :) - Peter
显示剩余2条评论

15
rm /Applications/MAMP/db/mysql56/*

工作正常,但在phpmyadmin中显示“找不到数据库”,尽管有数据库,因此我的Drupal因此给出了错误。

我所需要做的就是从/Applications/MAMP/db/mysql56/中简单地移除两个文件ib_logfile0ib_logfile1,这对我很有帮助。


2
你还需要删除ibdata1 rm /Applications/MAMP/db/mysql56/ibdata1 - Amr M. AbdulRahman
4
不行,因为如果你删除这个文件,你的CMS系统和PHP服务器将无法查看数据库。因此,只需保留这两个文件ib_logfile0和ib_logfile1即可。 - JSEvgeny
1
删除 abdata1 导致我失去了我的数据库。只删除两个日志文件对我有用。 - MrMadsen
1
在强制停止 MAMP 后,我遇到了这个问题,删除日志文件可以解决它。非常感谢。 - 6754534367

13

我查看了MAMP网站。进入MAMP/db/mysql56,并将两个日志文件重命名(我只更改了末尾的数字)。重新启动MAMP,一切正常。

日志文件名称:

  1. ib_logfile0
  2. ib_logfile1

欢迎来到 Stack Overflow。如果您提供基于答案的链接,那么这个答案将会更好。 - Gary99
1
作为MAMP/WordPress用户,这是唯一完全适用于我的解决方案——我只删除了那些日志文件(仅限于这些文件),然后当我再次启动MAMP时,一切都恢复正常了。 - caleb531
这对我也起作用了。此页面上的所有其他选项都会从所有数据库中删除表格。 - George Mastro
这是最简单的解决方案。我只需在每个日志文件末尾添加一个“-O”,问题就解决了。 - stickdeodorant

12
  1. 停止 MAMP 服务器。
  2. 然后进入以下文件夹:

Applications/MAMP/db/mysql56/

在这个文件夹中,除了文件夹之外,请删除所有的直接文件。 这意味着你只需要删除auto.cnf, ibdata, ib_logfile,而不是任何文件夹。

  1. 重新启动 MAMP 服务器。

它应该可以正常工作。

谢谢。


10

这里的大多数答案都建议删除随机文件。

大多数情况下,这是最糟糕的做法,特别是如果保持开发环境的完整性对您很重要。

如日志文件所述,如果此问题与读取许可权限或在 mysql 中删除的文件无关,则唯一的解决方案是:

从 MAMP 的文件菜单中打开 my.conf 文件(文件 > 编辑模板 > MySQL)

找到并编辑此行以设置为:innodb_force_recovery = 1

使用 ctrl+S 保存

MAMP 将提示您重新启动服务器

继续构建下一个独角兽 :)


现在没有“文件”选项卡了,你能更新一下你的回答吗? - Jalil

7

只需要在终端输入以下命令:

rm /Applications/MAMP/db/mysql56/ib_logfile* 

然后重新启动MAMP。

它就可以完美地运行了。


@Kamlesh,你可以更改已安装的mysql版本,而不是使用mysql56 - Manish Shrivastava

6

我必须采取一系列措施。首先,我需要更改 mysql 目录的权限。路径为 applications/MAMP/db/mysql56/mysql。 在这里查看 Stackoverflow

如果这不起作用,请在applications/MAMP/conf文件夹中添加一个my.cnf文件,并包含以下内容:

[mysqld]
innodb_force_recovery = 1

看到Adel 'Sean' Helal. 回答

这是最终为我工作的内容。


3

我曾经遇到过这个问题,以下是解决方法:

  1. 在 MAMP 中打开 Preferences记录当前的 Apache 和 MySQL 端口号

    enter image description here

  2. 点击 Set to default Apache and MySQL portsReset MAMP 按钮,然后点击 OK。

  3. 退出 MAMP。

  4. 删除 /Applications/MAMP/db/mysql 目录下的所有文件(非文件夹)。

  5. 重新启动 MAMP 并点击 Start Servers

    注意:如果 MySQL 正常启动,但 Apache 无法启动,请返回到 Preferences 中并将 Apache 端口号设置回之前的值。点击 OK 后,MAMP 应该会刷新,Apache 和 MySQL 都应该能够启动。

  6. 如果 http://localhost/MAMP/index.php 无法加载,请使用开发者工具(Chrome),右键单击刷新按钮,然后选择 Empty Cache and Hard Reload。phpAdmin 页面应该可以正常加载。如果仍无法加载,请尝试在开发者工具中打开 Application 面板,选择菜单中的 Clear Storage ,然后点击 Clear Site Data

希望这些步骤能够为某些人提供快速解决方案,而无需破坏数据库表。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接