我建议使用终端命令。
启动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
/usr/local
目录的所有权转移到了自己身上,这导致守护进程用户叫做"_mysql"的/usr/local/mysql-5.7.20-macos10.12-x86_64/data
目录的写入权限被夺走了。
恢复所有权可以解决问题。
在与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启动。
/etc/my.cnf
才使其正常工作。在我的情况下,mysql目录的所有权不知何故变为了admin:admin。我使用ares的建议从终端运行mysqld:
sudo /usr/local/mysql/support-files/mysql.server start
出现了写入MySQL文件的权限错误。
我用以下命令进行了修复:
sudo chown -R _mysql:wheel /usr/local/mysql/data
来自这篇帖子:
在我的情况下,在安装Mysql后,Mac需要重新启动。
因此,在安装后重启Mac可以解决这个问题。
MacOS没有my.cnf文件。默认设置足以满足基本使用的需求。一旦我们需要覆盖它们,有一个自定义配置是有意义的。
我的问题是由于机器重启不正确,导致数据库损坏。根据官方文档的说明,强制进行InnoDB恢复即可解决问题。
/etc/my.cnf
innodb_force_recovery = 2
/etc/my.cnf
文件来“解决”这个问题,出于某种原因,此后从未被任何人重新创建。(请参见上面"Sabine"的评论。) - Mike Robinson