MacOS无法启动MySQL服务器

24
我有MacOS Sierra操作系统。我已经安装了MySQL服务器并且它一直在工作,但是,在重新启动Mac Book之后,我无法启动MySQL服务器。

enter image description here

我已经尝试在my.cnf文件中将端口从3306更改为3307
问题:
我需要任何关于如何启动MySQL服务器的帮助,并且还需要它在MacOS启动时自动启动。
(我是Mac的新手,所以如果这是一个基本问题,请谅解)。
更新:
寻找错误日志,我找不到今天(2017年2月2日)的时间戳。

enter image description here

data 目录中没有任何内容:

enter image description here

自从我尝试启动MySQL服务器(2017年2月2日09:00后),没有任何带有“mysql”的文件被修改。

enter image description here enter image description here


2
你应该有一个“错误”文件 - 在我的电脑上,它在 /usr/local/var/mysql 目录下,类似于 <hostname>.local.err。看看里面是否有明显的问题(应该在文件末尾附近)。 - FreudianSlip
上面已经更新了,那里什么也没有。 - Richard
那么我怀疑你的安装没有成功 - 你应该至少有mysql目录,可能还有performance_schema目录,如果你使用innodb引擎的话,还应该有一些ibdata和ib_logfiles文件。试着执行以下命令查找ibdata1文件:sudo find / -name 'ibdata1' - FreudianSlip
1
我最近几周一直成功地使用它,但今天早上重新启动电脑后,出现了这个问题。我会按照你的建议进行搜索。感谢帮助。 - Richard
让我们在聊天中继续这个讨论。点击此处进入聊天室 - FreudianSlip
显示剩余6条评论
11个回答

41

我建议使用终端命令。

启动MySQL

sudo /usr/local/mysql/support-files/mysql.server start

停止MySQL

sudo /usr/local/mysql/support-files/mysql.server stop

重新启动MySQL

sudo /usr/local/mysql/support-files/mysql.server restart

1
这对我很有帮助,因为我能够看到导致问题的权限错误。 - Jack BeNimble
1
非常感谢,当我移除一个外键时,我的macOS High Sierra上的MySQL服务器崩溃了。我杀掉了所有的MySQL进程,然后使用这个命令重新启动MySQL,因为它无法从设置中启动。 - Faizan
谢谢这些命令,它们真的很有帮助! - Alex Yao

10
在我的情况下,我不小心将整个/usr/local目录的所有权转移到了自己身上,这导致守护进程用户叫做"_mysql"的/usr/local/mysql-5.7.20-macos10.12-x86_64/data目录的写入权限被夺走了。

恢复所有权可以解决问题。


我遇到了完全相同的问题。谢谢。真不敢相信这个答案没有得到任何赞同。 - Mingtao Sun

9

在与Richard的讨论后,以下内容解决了该问题:

my.cnf:

[client]

port = 3306
socket = /tmp/mysql.sock


[mysqld]

port = 3306
socket = /tmp/mysql.sock
datadir = /usr/local/mysql-5.7.17-macos10.12-x86_64/data
tmpdir = /tmp

本质上,尽管我们已经在my.cnf文件中添加了相关的段落,但我们仍然忽略了部分标题。添加[mysqld]部分允许mysql启动。


非常感谢您在这里提供的所有帮助,这解决了我的问题。 - Richard
3
@Richard,我有同样的问题,找不到my.cnf文件。它在哪里? - SyAu
1
我的.cnf文件应该放在哪里?我没看到它。 - Ali K. Nouri
1
@akarimin 它在 /usr/local/mysql/ 中。 - Manvir

8
在MacOS High Sierra上安装Mysql 8.0.12后,Mysql服务器无法启动。我尝试了一些建议,比如删除mysql并重新安装、重启计算机和更改文件权限,但都没有成功。最终,我通过删除/etc/my.cnf才使其正常工作。

2
我刚刚删除了该文件,然后通过系统设置中的Pref面板启动了Mysql,然后'lights'保持绿色,而不是在单击启动按钮后立即变为红色。 我不确定,但my.cnf可能是旧mysql版本的剩余部分。 - Sabine
这对我来说是个问题。我想当我删除系统上所有旧的mysql文件时,我忘记删除这个了。 - wtflux
这也是我的问题。 - Russell Lego
尽管这看起来非常奇怪,但对我来说也是如此,它似乎起作用了。 - Mike Robinson

8

在我的情况下,mysql目录的所有权不知何故变为了admin:admin。我使用ares的建议从终端运行mysqld:

sudo /usr/local/mysql/support-files/mysql.server start

出现了写入MySQL文件的权限错误。

我用以下命令进行了修复:

sudo chown -R _mysql:wheel /usr/local/mysql/data

来自这篇帖子:

在Mac上,/usr/local/mysql应该归属于哪个用户?


7

在我的情况下,在安装Mysql后,Mac需要重新启动。

因此,在安装后重启Mac可以解决这个问题。

MacOS没有my.cnf文件。默认设置足以满足基本使用的需求。一旦我们需要覆盖它们,有一个自定义配置是有意义的。


5

这个解决方案对我有用。

输入图像描述

您需要打开活动监视器并搜索mysqld服务。选择后,只需单击左上角的删除按钮,您会看到内存下降。之后,您可以从“系统偏好设置”验证mysql服务器状态,该服务已启动。

使用此解决方案,您无需重新启动计算机即可快速开始工作。


这很有帮助。删除服务后,它修复了,然后自动重新激活并恢复工作 :) - Muhamet Aljobairi

3

我的问题是由于机器重启不正确,导致数据库损坏。根据官方文档的说明,强制进行InnoDB恢复即可解决问题。

/etc/my.cnf

innodb_force_recovery = 2

1
你救了我的一天! - agritton
这是我 Mac 上的路径,/usr/local/mysql/etc/my.cnf。 - surdet

1
我的问题是我之前用Homebrew安装了MySQL(忘记了),然后采取了更手动的方法,所以我认为这两个安装互相冲突了。在这个指南的帮助下,我清除了我的Mac中的两个安装:https://gist.github.com/vitorbritto/0555879fe4414d18569d
注意:在其中提到使用subl时,那是Sublime,请使用您喜欢的任何编辑器。
在此之后,我能够通过全新安装使事情正常运行。

1
是的,类似的问题。但我仍然遇到了“服务器无法保持运行”的问题,我通过删除一个/etc/my.cnf文件来“解决”这个问题,出于某种原因,此后从未被任何人重新创建。(请参见上面"Sabine"的评论。) - Mike Robinson

1

我在 Monterey 上也遇到了同样的问题。确保根据您的处理器架构选择正确的下载。

MySQL 下载的处理器架构

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