我成功地在其中一个用户中运行了 MAMP,但由于我创建了一个新用户来将事情分给两个开发人员,它就变得很烦躁。我对 Mac 本身还很陌生,但设法找到了有类似问题的用户。
在我的旧用户中,Apache 无法启动,在新用户中,MySql 无法启动。我还验证了没有其他 mysqld 实例正在运行,但它仍然无法在我的系统上运行 MySql。我已经多次重启系统,甚至检查了 /etc 中的文件 my.cnf,但 /etc 中没有 my.cnf
在 mamp.info 上找不到任何表格来寻求支持,现在我非常想念我的 Ubuntu :-(
这是 mysql 日志:
110803 16:16:26 [Note] Plugin 'FEDERATED' is disabled.
110803 16:16:26 [Note] Plugin 'ndbcluster' is disabled.
/Applications/MAMP/Library/libexec/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
110803 16:16:26 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
110803 16:16:26 InnoDB: Started; log sequence number 0 396676924
110803 16:16:26 [ERROR] /Applications/MAMP/Library/libexec/mysqld: Can't find file: './mysql/host.frm' (errno: 13)
110803 16:16:26 [ERROR] Fatal error: Can't open and lock privilege tables: Can't find file: './mysql/host.frm' (errno: 13)
110803 16:16:26 mysqld_safe mysqld from pid file /Applications/MAMP/tmp/mysql/mysql.pid ended
可能存在什么问题?
答案1
此问题与当前用户没有文件权限有关./mysql/host.frm
(/Applications/MAMP/db/mysql/mysql/host.frm
)
据推测是因为它是由不同的用户安装的,并且所有文件都归该用户所有,并且仅为文件所有者设置了写入权限。
在典型的 MAMP 安装中,所有权可能设置为老用户以及 admin 组 (olduser:admin),仅具有用户读/写权限。如果新用户也在管理员组中,然后只需将组读写添加到整个 MAMP 路径:
sudo chmod -R ug+rw /Applications/MAMP
如果像我的情况一样,公司的笔记本电脑从一个用户传递给另一个用户(即旧用户将不再使用它),那么更改所有文件的所有权可能是一个好主意:
sudo chown -R newuser:admin /Applications/MAMP
边注:
我知道这是一个老话题,但既然它现在出现了,我遇到了同样的问题,我想我应该添加完整的解决方案来解决我自己的问题。此外,womble 的回答对错误的根源提供了有益的见解。
答案2
问题在于您的 MySQL 数据由与尝试访问它的用户不同的用户所拥有。将 chown
您的 MySQL 数据目录分配给新用户,或者(如果您希望将来继续允许多人运行 MySQL)为新用户创建一个单独的 MySQL 数据目录,并适当地修改第二个用户的配置文件。