MAMP Pro和MySQL出现致命错误:请阅读手册中的“安全”部分,以了解如何以root身份运行mysqld。

8
更新到 macOS Catalina 后,我无法使用 MAMP Pro 运行 MySQL,出现了错误。以下是 mysql_error.log 中的内容:
2019-10-09T10:53:16.6NZ mysqld_safe Logging to '/Applications/MAMP/logs/mysql_error.log'.
2019-10-09T10:53:16.6NZ mysqld_safe Starting mysqld daemon with databases from /Library/Application Support/appsolute/MAMP PRO/db/mysql57
2019-10-09T10:53:16.917470Z 0 [Warning] Insecure configuration for --secure-file-priv: Current value does not restrict location of generated files. Consider setting it to a valid, non-empty path.
2019-10-09T10:53:16.919285Z 0 [Note] /Applications/MAMP/Library/bin/mysqld (mysqld 5.7.26) starting as process 3320 ...
2019-10-09T10:53:16.932570Z 0 [Warning] Setting lower_case_table_names=2 because file system for /Library/Application Support/appsolute/MAMP PRO/db/mysql57/ is case insensitive
2019-10-09T10:53:16.932669Z 0 [ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!

2019-10-09T10:53:16.932697Z 0 [ERROR] Aborting

2019-10-09T10:53:16.932751Z 0 [Note] Binlog end
2019-10-09T10:53:16.935298Z 0 [Note] /Applications/MAMP/Library/bin/mysqld: Shutdown complete

2019-10-09T10:53:16.6NZ mysqld_safe mysqld from pid file /Applications/MAMP/tmp/mysql/mysql.pid ended

我在搜索互联网并尝试了很多方法,但无法使其运行。有人遇到过同样的问题并能够提供帮助吗?先感谢了!

你是否尝试根据你的问题所述,在手册的“安全”部分遵循建议? - Lelio Faieta
这个对你还有效吗? - v3nt
3个回答

29

我的临时解决方案是在开发人员发布修复之前。我正在使用MAMP Pro;我不知道非Pro版本是否有相同的界面。 临时解决方法:

打开MAMP Pro。如果服务器正在运行,请停止它们。从菜单中打开MySQL模板:文件>编辑模板>MySQL(mysql.cnf)>5.7.26

  1. 向下滚动或查找[client]。 在[client]下面添加以下行: 用户= root

  2. 向下滚动或查找[mysqld]。 在[mysqld]下面添加以下行: 用户= root

  3. 启动服务器。

这对我有用。 希望能帮到您。


非常好!非常感谢! - John Doe Smith
不幸的是,这对我没有起作用。有人找到了替代解决方案吗? - v3nt

4

在我的Mac上安装Catalina后,我遇到了同样的问题。首先,我尝试了Les Brown的解决方案,但并没有完全解决我的问题。我得到了另一个错误:

[Note] Access denied for user 'root'@'localhost' (using password: NO) 

经过阅读后,我在YouTube上看到了一个视频(https://www.youtube.com/watch?v=LKE1G4sinBM),可以在MAMP-PRO的MySql模板的mysqld部分中添加关键字skip-grant-tables。这使得mysql工作起来了,但不是在您的模板文件中永久拥有的最佳方法。如果您尝试添加这行代码,请不要忘记将其删除!
最后,我得到了MAMP-Pro支持的提示,制作了一个到mysql.stock的符号链接。所以我在终端中执行以下命令('$'是终端的提示符)。
$ sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock
Password:...
$

现在一切都运行良好。


谢谢!我的之前的修复在Catalina 10.15.2上停止工作了。在mysql模板中,在[mysqld]下面添加以下行允许MySQL启动。我还创建了符号链接。目前一切看起来都很好。 - Les Brown
我可以确认在Big Sur上,Les Brown的修复加上这个修复可以解决它。Les Brown在上面评论中缺失的“[mysqld]下面的以下行”与Harm在此答案中编写的相同:(单独一行:)skip-grant-tables。 - Matt Rabe

0

Les Brown的回答对我有所帮助。我有一个可能适用于您和其他人的附加说明。

如果MAMP(PRO)访问Documents或iCloud Drive中的任何目录,则Catalina要求用户批准MAMP和/或MYSQL访问该目录。

例如,在我的一个MAMP PRO服务器上,我使用cron运行ETL(提取、转换和加载),从网站下载csv文件,然后将每个已下载的csv中的数据加载到指定的MySQL表中,以进行测试。然而,脚本不会工作,因为MySQL没有权限访问从Documents目录下载的csv文件。我必须手动从命令行运行ETL脚本。此时,MacOS模态弹出窗口会指示我授予MySQL访问Documents的权限。一旦我授予权限,ETL脚本就开始工作了。


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