Mac OS X,MySQL偏好设置面板无法工作。

20

我从DMG存档中下载并安装了适用于OS X 10.6的MySQL 5.1.47:

mysql-5.1.47-osx10.6-x86_64.dmg

我还安装了 MySQL.prefPaneMySQLStartupItem.pkgMySQL.prefPane 是一个首选项面板。问题是,每当我尝试从偏好设置面板启动/停止 MySQL 时,系统偏好设置就会挂起。它永远以大约50%的CPU运行,最终我不得不强制退出系统偏好设置。如果我切换“自动启动MySQL服务器”,那么也会发生相同的情况。基本上,MySQL首选项面板无法正常工作。

请注意,我没有问题从命令行启动MySQL:

sudo /usr/local/mysql/bin/mysqld_safe

我尝试重新安装MySQL和Preference Pane。我使用的是标准安装位置,没有什么异常情况。每次MySQL Preference Pane都会卡住。

我的电脑是Macbook Pro(Intel),运行的是OS X 10.6.3。这台机器上没有旧版的MySQL。

后续:现在是2012年1月,所以我想检查一下是否已经修复了这个问题。我在OS X 10.6.8上尝试了最新的MySQL 5.5.20,但仍然无法正常运行 - 同样的行为,它只是卡住了(我不得不强制退出)。我尝试了Jamie Wongcarloandaya的建议,但两者都没有起作用。


有没有办法将它迁移到Serverfault? - Steve Kuo
是的。如果还有4个以上的“应该移到ServerFault”投票,它将被迁移。 - Shaggy Frog
我会在活动监视器中进行样本跟踪,看看它卡在哪里了。 - Ken Aspeslagh
8个回答

7
在Mac OS X Lion下,以下方法对我有用:
编辑 /usr/local/mysql/support-files/mysql.server 修改第46行和第47行
basedir=
datadir=

为了

basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

当您执行 ls -l /usr/local/ | grep mysqlls -l /usr/local/mysql/ | grep data 时,您会看到哪些权限、用户和组值? - rdamborsky
我刚刚通过检查localhost.local.err文件发现,/tmp目录的权限存在问题。由于我有一个从ssd到hdd的符号链接指向tmp,符号链接的目标没有777的权限。在对符号链接目标目录执行chmod 777之后,mysql启动了。 - rdamborsky
尽管我对这个文件拥有读写权限,但macOS不允许我编辑它。 - saran3h

6

对于仍然遇到此问题的任何人,请参见:http://bugs.mysql.com/bug.php?id=53232

具体来说,这是Rembert Oldenboom的回复:

在全新的mbp i7 2.8上,mysql 5.5.8仍存在问题。根据其他人的评论,修复很容易:

编辑/usr/local/mysql/support-files/mysql.server,在下面大约4行处搜索“设置一些默认值”,将一行

basedir=.

替换为

basedir=/usr/local/mysql

然后在下面大约3行处搜索“如果没有给出pid文件,则设置pid文件”,将一行

mysqld_pid_file_path=$datadir/`hostname`.pid

替换为

mysqld_pid_file_path=$datadir/`/bin/hostname`.pid

现在首选项窗格将可以工作。


这在我的OS X Yosemite(10.10)上也没有起作用。你会认为在5年之后,MySQL会解决这种大问题。 - l008com
这个方法,编辑mysqld_pid_file_path,在我现在已经过时的Yosemite(10.10.5)上运行良好。 - bwingenroth
在我的OS X Sierra上没有起作用,很遗憾他们在这么多年后仍然没有修复这个错误。 - nope2023

3
旧的Stack Overflow帖子!世界已经发生了很大的变化,我想分享一下我的解决方法。对我来说问题是时区表和Stephen的答案。
我做了以下操作:
编辑/usr/local/mysql/support-files/mysql.server 更改第46和47行 basedir= datadir= 为 basedir=/usr/local/mysql datadir=/usr/local/mysql/data
并更新了my.cnf。
我设置了默认时区为UTC。我必须注释掉那行代码。
default-time-zone = UTC 

翻译:

to(表示目的地)

# default-time-zone = UTC(默认时区为UTC)

使用plist文件启动服务器(请检查您的plist路径/名称!):

sudo launchctl load -w /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist(然后使用sudo命令加载MySQL时间区表格从Mac OS时间区文件)

我接着从Mac OS时间区文件加载了MySQL时间区表格

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root --password="YOUR_PASSWORD_HERE" mysql

我停止了MySQL,并使用我的plist文件重新启动。 sudo launchctl unload -w /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist sudo launchctl load -w /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist 之后,我可以使用偏好设置面板停止/启动MySQL!

1
我已经安装和重新安装了MySQL 5.5.15,使用了一些在网上找到的技巧。我发现,在双击首选项面板安装.dmg文件后,选择“为此计算机的所有用户安装”而不是“仅为当前用户安装”,可以使其正常工作。这是我在Snow Leopard上安装MySQL时改变的唯一步骤。

0

这对我有用:

sudo /Applications/XAMPP/xamppfiles/bin/mysql.server start

我发现的问题是mysql.server权限问题。

0

你确定黑豹支持64位应用程序吗?

似乎当我试图在雪豹上打开32位首选项面板时,首选项面板会显示“好吧,这个面板是32位的,而你有一个64位的macOS,我正在重新启动这个面板”

也许它挂起来是因为相反的情况?获取32位首选项面板并尝试打开64位面板?


所有这些都来自同一个 dmg 文件,所以我认为它们应该可以相互配合工作。 - Steve Kuo

0

我也曾经遇到这个问题。结果是我不小心在64位的Mac上安装了32位的MySQL服务器。糟糕!我建议检查您的处理器类型(32位或64位),并重新安装相应的MySQL DMG。

我花了几天时间才弄清楚这个问题!MySQL仍然可以在后台正常运行,只是首选项面板和通过终端连接无法正常工作。

希望这对您有用!


0

这里的其他解决方案对我没有用,但是在这个错误报告的帮助下https://bugs.mysql.com/bug.php?id=28854(特别是BuB Javier的评论),我自己拼凑出了一个解决方案。

诀窍有两个:

  1. 使用http://www.cs.cmu.edu/~benhdj/Mac/unix.html中的代码创建一个/bin/pidof文件。

    #!/bin/sh
    ps axc|awk "{if (\$5==\"$1\") print \$1}"|tr '\n' ' '
    

    确保它是可执行的。

  2. 创建一个/etc/my.conf~/.my.conf文件,并使用pid-file选项指定PID文件的路径(例如/usr/local/mysql/data/`hostname`.pid)。 (在MySQLWorkbench中很容易完成此操作。)
    在尝试在MySQLWorkbench中停止服务器并出现“PID文件未找到!”错误消息后,我发现了这一点。 显然,在mysql.server文件中指定pid-file位置不起作用。

我确实像经常建议的那样在这里和那里更改了一些_mysql:wheel的权限,但我不确定在我的情况下这是否有影响。 在完成上述两个步骤后,首选项面板再次正常工作。 如果对您无效,请尝试更改一些文件权限。

MySQL 5.6.25社区服务器(64位)
Mac OS X Mavericks(10.9.5)


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